क्या एक एकल मेवेन प्रोजेक्ट में एकाधिक जावा स्रोत निर्देशिकाओं को संकलित करने का कोई तरीका है?मैवेन एकाधिक स्रोत निर्देशिकाओं के साथ संकलित
उत्तर
आप निर्माण सहायक के साथ एक नया स्रोत निर्देशिका जोड़ सकते हैं:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/generated</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
यह मेरे लिए काम किया
<build>
<sourceDirectory>.</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<includes>
<include>src/main/java/**/*.java</include>
<include>src/main2/java/**/*.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
नहीं इस तरह के एक अच्छा विचार IMHO, के बाद से कई प्लगइन्स मान 'sourceDirectory' - और संभवतः अतिरिक्त' sources' - स्रोत फ़ाइलों की जड़ों के रूप में। आपके समाधान में, 'मेवेन-कंपाइलर-प्लगइन' इन वास्तविक जड़ों से अवगत एकमात्र प्लगइन है। –
@Laurent आप इसके बारे में सही हैं। यह दो साल पहले एक अच्छा विचार था लेकिन अब बहुत बेहतर विकल्प हैं। ऊपर सूचीबद्ध बिल्ड-हेल्पर मेरा पसंदीदा विकल्प है। – sal
यह इसे प्रोजेक्ट मॉडल में नहीं जोड़ता है, इसलिए यह आईडीई में सही तरीके से काम नहीं करेगा। –
प्रयुक्त पद से निर्माण सहायक-Maven-प्लगइन - और अद्यतन src/मुख्य/उत्पन्न। और एमवीएन स्वच्छ संकलन मेरे ../common/src/main/java पर या ../common पर काम करता है, इसलिए बाद वाले को रखा गया। फिर हां, यह पुष्टि करते हुए कि संकलन के इंटेलिजे आईडीईए (वर्क 10.5.2) स्तर में विफल रहा क्योंकि डेविड फिलिप्स ने उल्लेख किया था। मुद्दा यह था कि आईडीईए ने परियोजना में एक और स्रोत रूट नहीं जोड़ा था। इसे जोड़कर मैन्युअल रूप से समस्या हल हो गई। यह अच्छा नहीं है क्योंकि परियोजना में कुछ भी संपादित करना मैवेन से आना चाहिए और आईडीईए के प्रोजेक्ट विकल्पों के सीधे संपादन से नहीं। फिर भी जब तक वे बिल्ड-हेल्पर-मैवेन-प्लगइन का समर्थन नहीं करते हैं, तब तक मैं इसके साथ रह सकूंगा ताकि यह स्रोतों को स्वतः जोड़ सके।
फिर इस काम को करने के लिए एक और कामकाज की आवश्यकता थी। चूंकि प्रत्येक बार आईडीईए ने एक पोम बदलने के बाद मैवेन सेटिंग्स को फिर से आयात किया है, इसलिए मुझे नया जोड़ा गया स्रोत मॉड्यूल पर रखा गया था, फिर भी यह स्रोत फ़ोल्डर्स चयन खो गया और बेकार था। तो के लिए विचार - इन एक बार की स्थापना की आवश्यकता:
- का चयन करें - परियोजना सेटिंग्स/Maven/आयात कर रहा है/रखने के स्रोत और परीक्षण पुन: आयात पर फ़ोल्डरों।
- जोड़ें - परियोजना संरचना/परियोजना सेटिंग्स/मॉड्यूल/{मॉड्यूल}/स्रोत/सामग्री रूट जोड़ें।
अब उन फ़ोल्डर्स को आयात पर रखना दुनिया में सबसे अच्छा अभ्यास नहीं है ..., लेकिन इसे आज़माएं।
न तो विकल्प इंटेलिजे आइडिया 9.0.4 के साथ काम करता है जो मैं उपयोग करता हूं। हालिया ग्रहण के साथ बिल्ड-हेल्पर विकल्पों की कोशिश नहीं की है, लेकिन जब मैंने कोशिश की तो यह 3.4 और एम 2 प्लगइन के साथ काम नहीं किया। मेवेन को एक ही प्रोजेक्ट से बने कई स्रोत पेड़ या कई कलाकृतियों को पसंद नहीं है, इस सीमा के चारों ओर जाने का कोई भी प्रयास आमतौर पर एक भयानक हैक है। – sal
कई वर्षों से इंटेलिजे पर रहा है। और कभी ग्रहण करने के लिए स्विच नहीं किया है, इसलिए इसके लिए बात नहीं कर सकते, फिर सुनना आम तौर पर बहुत अच्छा है। IntelliJ के लिए हर दूसरे वर्ष एक व्यक्तिगत लाइसेंस का उन्नयन $ 100/वर्ष है। जनवरी में हर साल नए प्रमुख संस्करण आम तौर पर बाहर होते हैं। फिर पिछले वर्ष के पिछले 2-3 महीनों में वे आपको पिछले संस्करण को खरीदने और आने वाले एक को अपग्रेड करने की इजाजत दे रहे हैं। यह अभी पर है इसलिए यह 10 खरीदने और 11 प्राप्त करने के लिए "सुरक्षित" समय है। इसके अलावा, यदि आपको जेएसपी और अन्य एंटरप्राइज़ सुविधाओं की आवश्यकता नहीं है, तो मुफ्त समुदाय संस्करण का उपयोग करें। – arntg
यह IntelliJ में काम करने के लिए, आप भी
<generatedSourcesDirectory>src/main/generated</generatedSourcesDirectory>
maven-संकलक प्लगइन
यह जोड़ना चाहेंगे कि यह ग्रहण में काम करता है और साथ ही प्रोजेक्ट कॉन्फ़िगरेशन में स्रोत स्रोत के रूप में जेनरेट किए गए स्रोतों को जोड़ना चाहता है। –
हालांकि यह पथ एनोटेशन प्रोसेसर द्वारा उत्पन्न स्रोतों के लिए प्रतीत होता है। यहां तक कि अगर यह काम करता है, तो यह संभव है कि इस पथ को कुछ प्लगइन द्वारा अलग तरीके से संभाला जा सके। उदाहरण के लिए, मुझे उम्मीद है कि 'क्लीन' चलने पर यह निर्देशिका हटा दी जा सकती है। – Kapep
यह दो चरणों में किया जा सकता है करने के लिए जोड़ सकते हैं:
- प्रत्येक स्रोत निर्देशिका के लिए आपको अपना मॉड्यूल बनाना चाहिए।
${build.directory}
आप आरंभ जेट्टी (jetty:run
), तो किसी भी मॉड्यूल में किसी भी वर्ग की रखता (Maven, विचार या ग्रहण के साथ) के साथ काम करते हैं को बढ़ावा मिलेगा:
यह संसाधन टैग को परिभाषित करके मेवेन के साथ भी काम करता है। आप जो भी चाहें अपने src फ़ोल्डर नामों का नाम दे सकते हैं।
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.java</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/generated</directory>
<includes>
<include>**/*.java</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
http://maven.apache.org/pom.html# स्रोत -> 'संसाधन (आमतौर पर) कोड नहीं हैं। वे संकलित नहीं हैं – SJuan76
यह सही है। – sendon1982
मैं भोलेपन यह इस तरह से कार्य करें:
यह अभी भी काम कर रहा है? –
मेरे लिए काम किया :) ग्रहण हालांकि ऐसा प्रतीत नहीं होता है। ऐसा लगता है कि "src/main/java, src/interfaces" एक एकल स्रोत है, और इसलिए इसे (गायब) के रूप में ध्वजांकित करता है। – Joel
मैवेन 3.3.9 में मेरे लिए काम करता है !!! यह स्वीकार्य उत्तर होना चाहिए –
- 1. मैवेन के साथ एक फ़ाइल को संकलित कैसे करें?
- 2. gdb स्रोत निर्देशिकाओं के लिए खोज
- 3. मैवेन के साथ - स्वच्छ पैकेज, एक्सएमएल स्रोत फाइलों को क्लासपाथ
- 4. संकलन एकाधिक स्रोत निर्देशिका ++
- 5. चींटी: जार संकलित करने के लिए कैसे स्रोत संलग्नक
- 6. बाइनरी भिन्न वर्गों के लिए समान जावा स्रोत संकलित
- 7. हाइव: एकाधिक निर्देशिकाओं के साथ बहु-फाइलों के साथ तालिका निर्माण
- 8. मैवेन में निर्भरता कैसे संकलित करें?
- 9. मैवेन
- 10. रूबी: एकाधिक निर्देशिकाओं में एकाधिक फ़ाइलों में नियमित अभिव्यक्ति खोजना
- 11. मैवेन
- 12. मैवेन में एकाधिक एंटीन कार्यों
- 13. मैवेन
- 14. मैवेन
- 15. एनडीके उपकरण के साथ स्रोत कोड के साथ पुस्तकालय संकलित कैसे करें?
- 16. मैवेन
- 17. एकाधिक स्रोत कोड भंडार
- 18. लुआ प्रोजेक्ट त्रुटियों के साथ संकलित (luabind)
- 19. उप निर्देशिकाओं में स्रोत फ़ाइलों के साथ Android.mk फ़ाइल कैसे लिखें?
- 20. Nginx - एकाधिक निर्देशिकाओं में स्थिर सामग्री के लिए खोजें?
- 21. कई निर्देशिकाओं में मेकफ़ाइल
- 22. मैवेन रिपोजिटरी
- 23. स्रोत प्ले में संकलित किया जाएगा 2
- 24. मैवेन
- 25. मैवेन
- 26. मैवेन: विभिन्न स्रोत स्तरों पर संकलन और परीक्षण
- 27. मैवेन
- 28. मैवेन एकाधिक टॉमकैट सर्वर पर तैनात
- 29. एकाधिक ओकैम फाइलों को संकलित करना
- 30. आप अपनी फाइल सिस्टम निर्देशिकाओं के साथ सिंक में Xcode प्रोजेक्ट स्रोत फ़ाइलों को कैसे रखते हैं?
इस दृष्टिकोण के साथ एकमात्र मुद्दा यह है कि अंतिम आर्टिफैक्ट में जावा स्रोत फाइलें भी शामिल हैं (.java फ़ाइलें)। क्या स्रोत फ़ाइलों को बाहर करने का कोई तरीका है और इसमें केवल .class फ़ाइलें शामिल हैं? –
दूसरों के लिए सिर्फ एक नोट (मेरे जैसा), 'प्लगइन' तत्व '/ project/build/plugins' में है और'/project/build/plugin 'प्रबंधन/प्लगइन्स' – Betlista
@saravana_pc में यह समस्या नहीं है ... – Lyth