2011-06-15 14 views
7

मैं मेवेन और गिट दोनों के लिए नया हूं और एक परियोजना स्थापित करने में कुछ मदद करना चाहता हूं।मैवेन में एक गिट खींच कैसे कर सकता हूं?

क्या एक मेवेन चरण से जुड़े गिट से पुश/पुल करने के लिए पोम में एक लक्ष्य को परिभाषित करने का कोई तरीका है? उदाहरण के लिए, क्या मैं मैवेन इंस्टॉलेशन चरण के दौरान गिट से खींच सकता हूं?

यदि हां, तो यह कैसे पूरा किया जा सकता है? मैं किसी भी कोड उदाहरण की सराहना करता हूं।

+0

आप निर्माण के दौरान धक्का देना या खींचना क्यों पसंद करेंगे? वास्तव में एक बुरा विचार की तरह लगता है। –

+0

यह वास्तव में एक निर्माण नहीं है। परियोजना में स्वचालित परीक्षण शामिल हैं। और जिस तरह से हमारा परीक्षण ढांचा स्थापित होता है, हमें समय-समय पर परीक्षण चलाने के लिए नवीनतम फ्रेमवर्क कोड खींचने की आवश्यकता होती है। – user786045

+2

पुल मानते हुए तेजी से आगे बढ़ेगा (कोई विलय समाधान आवश्यक नहीं है), बस "गिट पुल रिपोनाम" नहीं चला रहा है, फिर "एमवीएन तर्क" पर्याप्त सरल है? यदि यह तेजी से आगे नहीं हो सकता है, तो मैवेन को इसे कैसे संभालना चाहिए? –

उत्तर

11

अच्छा विचार या नहीं, यहां आप मेवेन का उपयोग करके चेकआउट ( पुल क्लोन) खींच सकते हैं। अपने pom.xml इस तरह दिखें:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 

<modelVersion>4.0.0</modelVersion> 
<groupId>br.com.javamagazine</groupId> 
<artifactId>engesoft</artifactId> 
<packaging>war</packaging> 
<version>0.0.1-SNAPSHOT</version> 
<name>engesoft Maven Webapp</name> 
<url>http://maven.apache.org</url> 

<scm> 
    <connection>scm:git:git://github.com/vitorsouza/EngeSoft.git</connection> 
    <developerConnection>scm:git:https://[email protected]/vitorsouza/EngeSoft.git</developerConnection> 
    <url>https://github.com/vitorsouza/EngeSoft</url> 
</scm> 
</project> 

फिर mvn scm:checkout का उपयोग करें। जब मैंने इसे चलाया, तो उसने कोड को target/engesoft फ़ोल्डर में खींच लिया। इसे कहीं और स्थानांतरित करने के लिए इसे कॉन्फ़िगर करने का शायद एक तरीका है। अगले पन्नों की जाँच करें:

+1

आप गिट पासवर्ड कहां निर्दिष्ट करते हैं? –

+0

मैं पासवर्ड के बजाय एसएसएच कुंजी का उपयोग करता हूं। Https://help.github.com/articles/generating-ssh-keys –

2

इसके बजाय दौरान Maven का निर्माण ऐसा करने का, Jenkins की तरह एक सीआई सर्वर का उपयोग करें। यह मेवेन चलाने से पहले git pull करेगा, इसलिए निर्माण उपकरण इसके मुख्य उद्देश्य पर ध्यान केंद्रित कर सकता है: बिल्डिंग स्रोत कोड।

यह आपके लिए विकसित होने के लिए और भी आसान बनाता है क्योंकि पुल की इच्छा केवल तभी होती है जब आप उन्हें चाहते हैं। यदि आप हर समय खींचते हैं, तो कोई अन्य डेवलपर कुछ बदल सकता है और आपको त्रुटियां मिलेंगी जिनकी आप अपेक्षा नहीं करते हैं।

2

एसएमएम: चेकआउट लक्ष्य विटर एक क्लोन का जिक्र कर रहा है, न कि एक पुल (गिट में बड़ा अंतर)।

मुझे जो वर्णन कर रहा है उसे करने के लिए मुझे निष्पादन लक्ष्य का उपयोग करना पड़ा। जब भी कोई निर्माण होता था तब भी मैं एक संपूर्ण क्लोन नहीं करना चाहता था। इसके बजाय, मैं गीट रीसेट का उपयोग करता हूं - और फिर पुल-एफ मूल रिलीज: रिलीज (निष्पादन के माध्यम से)।

यदि मुझे एक बेहतर तरीका मिल रहा है (और वहां एक होना है) तो मैं इसे यहां पोस्ट करूंगा।

+0

स्पष्टीकरण के लिए धन्यवाद देखें। मैं अभी भी एक गिट नौसिखिया हूँ। –

संबंधित मुद्दे