2010-10-13 17 views
13

एक मेवेन प्रोजेक्ट में टेम्पलेटिंग कोड जेनरेटर के रूप में आप Freemarker (या वैकल्पिक) को कैसे बनाएंगे? मैं मेवेन के लिए काफी नया हूं और कुछ मदद की सराहना करता हूं।मैवेन में टेम्पलेट कोड जेनरेटर (जैसे फ्रीमार्कर) का उपयोग कैसे करूं?

मैं अपने प्रोजेक्ट में टेम्पलेट्स से कुछ कोड जेनरेट करना चाहता हूं। [ए]

अपना खुद का लिखने के बजाय, freemarker पाया जाता है जो Spring द्वारा उपयोग किया जाता है जो मेरे लिए एक अच्छा पर्याप्त संदर्भ है, हालांकि मैंने अभी तक इसके साथ शुरुआत नहीं की है, फिर भी कोई अन्य सुझाव जो अच्छी तरह से काम करता है मेवेन भी सराहना की जाएगी।

This website मुझे बताता है कि इसे मेरे pom.xml पर निर्भरता के रूप में कैसे जोड़ा जाए। This SO question मुझे बताता है कि जेनरेट किए गए स्रोत कहां जाना चाहिए। मैं जो काम नहीं कर सकता वह यह है कि इसे एक साथ कैसे बांधें, इसलिए मुझे टेम्पलेट्स से उत्पन्न मेरे जेनरेट किए गए स्रोत मिलते हैं, और फिर मेरे जेनरेट किए गए स्रोत संकलन, परीक्षण, जार, जावडोक इत्यादि के लिए नियमित स्रोतों की तरह उपयोग किए जाते हैं। क्या किसी और ने इसका इस्तेमाल किया है जावा के लिए जावा के लिए टेम्पलेट कोड जेनरेटर और मदद कर सकता है?

[ए] मुझे पता है कि जेनरिक सामान्य समाधान होगा, और वास्तव में मैं उनका उपयोग कर रहा हूं, लेकिन मुझे प्रतिलिपि/पेस्ट त्रुटियों को पेश किए बिना आदिम मामलों से निपटने के लिए टेम्पलेट का उपयोग करना होगा। कृपया इस पर मेरा भरोसा करें :-)

उत्तर

20

मैंने इस उद्देश्य के लिए एक मेवेन प्लगइन लिखा था। यह फ्रीमार्कर प्री प्रोसेसर का उपयोग करता है।

<plugins> 
    <plugin> 
     <configuration> 
      <cfgFile>src/test/resources/freemarker/config.fmpp</cfgFile> 
      <outputDirectory>target/test/generated-sources/fmpp/</outputDirectory> 
      <templateDirectory>src/test/resources/fmpp/</templateDirectory> 
     </configuration> 
     <groupId>com.googlecode.fmpp-maven-plugin</groupId> 
     <artifactId>fmpp-maven-plugin</artifactId> 
     <version>1.0</version> 
     <executions> 
      <execution> 
       <phase>generate-sources</phase> 
       <goals> 
        <goal>generate</goal> 
       </goals> 
      </execution> 
     </executions> 
    </plugin> 
</plugins> 

यहाँ cfgFile पथ जहां FMPP के लिए कॉन्फ़िग फ़ाइल रखना है:

यहाँ pom.xml से टुकड़ा इसके उपयोग पर प्रकाश डाला। (यदि आप FreeMarker में गुजरने वाले किसी भी विशेष डेटा का उपयोग नहीं कर रहे हैं तो एक खाली फ़ाइल पर्याप्त होगी) टेम्पलेट निर्देशिका वह है जहां आप फ्रीमार्कर टेम्पलेट्स रखते हैं। outputDirectory वह जगह है जहां आप आउटपुट फ़ाइलों को उत्पन्न करना चाहते हैं।

मैं प्लगइन उपयोग को हाइलाइट करने वाले विस्तृत दस्तावेज लिखने की प्रक्रिया में हूं और तदनुसार project website अपडेट कर दूंगा। https://code.google.com/p/maven-replacer-plugin/

समस्या के मूल वर्णन करने से ऐसा लगता है जैसे आप एक Maven मूलरूप (उर्फ परियोजना खाका) बनाने पर विचार करना चाहिए::

+0

+1। –

+0

वह दस्तावेज कैसा चल रहा है? :-) मैं यह नहीं समझ सकता कि पोम से मूल्यों को कैसे पास किया जाए (उदाहरण के लिए, project.version) ताकि फ्रीमार्कर प्लगइन उनके बारे में पता हो। – bacar

+1

प्लगइन के लिए धन्यवाद! यह पुस्तकालय के लिए बहुत उपयोगी था जिसे मैंने अभी लिखा था! https://github.com/mintern-java/functions –

0

यहाँ नौकरी के लिए एक और प्लगइन है http://maven.apache.org/archetype/maven-archetype-plugin/

और यह लग रहा है जैसे आप समीकरण में कुछ गुण जोड़ना चाह सकते हैं: http://maven.apache.org/archetype/maven-archetype-plugin/examples/create-with-property-file.html

मेवेन आर्केटाइप कार्यक्षमता अपाचे वेलोसी का उपयोग करके प्रतिस्थापन करने का साधन भी प्रदान करती है ty (Freemarker के समान ही पास) ... लेकिन मैंने अभी तक थोड़ा सा काम नहीं किया है। प्लगइन के लिए