2011-01-25 4 views
17

मैं नए मैवेन आर्केटीप्स बनाने के लिए एक गाइड की तलाश में हूं जिसमें निर्देशिका और फ़ाइल नाम बनाने के लिए पैरामीटर का उपयोग करना शामिल है, जहां पैरामीटर का उपयोग फाइल नामों में उपसर्ग के रूप में किया जाता है और पैकेज संरचना/निर्देशिकाओं के भाग के रूप में उपयोग किया जाता है मूलरूप आदर्श।नए मेवेन आर्केटीप्स बनाने के तरीके पर कोई भी अच्छा उन्नत गाइड?

मुझे लगता है कि बहुत सरल परियोजनाएं कैसे बनाएं, इस पर बहुत सरल निर्देश हैं।

उत्तर

8

मैवेन वेबसाइट का उपयोग क्यों न करें?

http://maven.apache.org/guides/mini/guide-creating-archetypes.html

+3

यह केवल मुझे मूल बातें प्रदान करता है। मैं एक ओपन सोर्स आर्केटाइप परिभाषा भी लेता हूं जिसे मैं टेम्पलेट के रूप में उपयोग कर सकता हूं जो मैं करना चाहता हूं। – menapole

+1

मुझे बुरा लगता है, मैंने पिछले भाग को "सरल निर्देशों को बनाने के तरीके पर सरल निर्देश" को गलत समझा। – fmucar

+0

आप एफ़फ्यूज की तरह sth बनाना चाहते हैं लेकिन मेवेन के साथ http://static.appfuse.org/? – fmucar

7

मुझे लगता है कि मैं एक साइट है कि मुझे एक छोटे से अधिक एक बार मैं पता लगा कि वेग टेम्पलेट्स मूलरूप आदर्श प्रक्रियाओं के भाग के रूप में उपयोग किया जाता है में मदद करता है पाया।

HowToCreateMavenArchetypeFromProject

1

यहां तक ​​कि मैं एक ही बात के लिए देख रहा हूँ। यहां तक ​​कि मुझे मेवेन होम पेज बहुत बुनियादी लगता है और हमारी आवश्यकता को पूरा नहीं करता है।

मैंने HowToCreateMavenArchetypeFromProject भी कोशिश की लेकिन मेरे पास अभी भी एक प्रश्न है। उस प्रकार के आर्केटाइप की प्रोजेक्ट उत्पन्न होने पर आर्केटाइप की एक विशिष्ट फ़ाइल कैसे शुरू करें। विशिष्ट होने के लिए, अगर मेरे पास जावा क्लास App.java है तो प्रोजेक्ट बनाने के दौरान उसे कैसे आमंत्रित किया जाए?

बिल्ड-आर्केटाइप-से-प्रोजेक्ट के साथ क्या होता है यह एक ही फाइलों और निर्देशिका संरचना की एक प्रोजेक्ट बनाता है और हमें इसे फिर से चलाने के लिए इसे चलाने की आवश्यकता होती है।

इसके अलावा, $ {groupId} और ऐसी सामग्री केवल मेवेन फ़ाइलों में ही काम करती है। क्या होगा यदि मेरे पास एक प्रॉपर्टी फ़ाइल है और क्या artifactId उपयोगकर्ता का उपयोग करना चाहते हैं?

अगर आप किसी भी अच्छी चीज में आते हैं तो मुझे बताएं। इस बीच, जब भी मुझे कोई समाधान मिल जाए तो मैं आपको बता दूंगा।

धन्यवाद

3

मुझे लगता है कि हम एक ही समस्या से मुलाकात की, अंत में मैं इस article

से शिक्षाप्रद साथ इसका समाधान नहीं मानते हुए कि आपके पैकेज उत्पन्न करना चाहते है com.company.basedal.dao, हम फोन जड़ पैकेज, dal.dao कोर पैकेज है com.company.base है, तो बस src/मुख्य/जावा/दाल/दाव के तहत अपने टेम्पलेट जावा फ़ाइल रखा, और packaged="true" tweak META-INF/Maven/मूलरूप आदर्श-metadata.xml में नीचे के रूप में

  <fileSet filtered="true" packaged="true" encoding="GBK"><!--packaged="true" tells maven to copy the core package in to root package while creating a project.--> 
      <directory>src/main/java</directory> 
      <includes> 
       <include>**/*.java</include> 
      </includes> 
     </fileSet> 

कहते हैं, आप निर्धारित करते हैं -Dpackage=com.alibaba.china के बाद mvn मूलरूप आदर्श निष्पादित करें: उत्पन्न, यह com/अलीबाबा/चीन/दाल/दाव के रूप में जावा स्रोत पैकेज पैदा करेगा /sample.java

नमूना में उपसर्ग पैकेज जानकारी देने के तरीके के रूप में।जावा, बस $ {पैकेज}

package ${package}.dal.dao; 

मूलरूप आदर्श प्लगइन नीचे के रूप में उपयोग वेग टेम्पलेट

+0

धन्यवाद, इससे मुझे मदद मिली लेकिन मुझे इसकी आवश्यकता थी एन्कोडिंग को 'यूटीएफ -8' में बदलें। साथ ही, लिंक मर चुका है इसलिए यह अच्छा है कि आपने उत्तर में पर्याप्त जानकारी शामिल की है। – antonyh

+0

ओ हां, जीबीके चीनी चरित्र को समायोजित करना है, यूटीएफ -8 ठीक होना चाहिए –

1

Maven documentacion से के रूप में -Dpackage साथ $ {पैकेज} का स्थान ले लेगा: http://maven.apache.org/archetype/archetype-models/archetype-descriptor/archetype-descriptor.html

एक फ़ाइलसेट परिभाषित करता है एक परियोजना उत्पन्न करने के लिए जार फ़ाइल में स्थित प्रोजेक्ट की फ़ाइलों का उपयोग आर्किटेप प्लगइन द्वारा किया जाता है। अगर फ़ाइल या निर्देशिका नाम में संपत्ति पैटर्न है, तो इसे संबंधित संपत्ति मान के साथ बदल दिया गया है।

अगर आप

__artifactId___local.properties

... के रूप में फ़ाइल नाम कर सकते हैं जब आप के साथ artifactId = foo proyect उत्पन्न कहीं भी होगी इस फाइल में शामिल हैं:

foo_local.properties

+0

चेतावनी - रेगेक्स बहुत लालची है इसलिए यदि आपके पास फ़ाइल नाम है Blah___artifactId__ (बीच में ट्रिपल अंडरस्कोर) यह एक मूर्ख संदेश के साथ असफल हो जाएगा 'कह सकता है' जब आप वास्तव में एक शाब्दिक अंडरस्कोर चाहते थे तो परिवर्तनीय _artifactId 'नहीं मिला। –

+1

इस मामले में आप एक मेवेन प्रॉपर्टी underscore = _ बनाने में हैक कर सकते हैं और फ़ाइल को Blah__underscore____artifactId_ - –

+0

से सहमत कर सकते हैं, लेकिन मैंने बिल्कुल कोशिश की लेकिन कोई सफलता नहीं - अब मैंने अंडरस्कोर से छुटकारा पाने के लिए नामकरण सम्मेलन को बदलने के लिए चुना है। –

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