मेरे पास मेवेन-आधारित प्रोजेक्ट है, जिसमें मैं "जैक्सबी 2-मेवेन-प्लगइन" मेवेन प्लगइन द्वारा स्वचालित रूप से जेनरेट किए गए कुछ जेएक्सबी कक्षाओं को जोड़ने की कोशिश कर रहा हूं। हालांकि, मेरे पहले कट में मुझे एक परिपत्र निर्भरता लूप में है:मैवेन प्रोजेक्ट में जेएक्सबी-जेनरेटेड क्लासेस का प्रबंधन
- क्योंकि ये जेएक्सबी कक्षाएं अभी तक उत्पन्न नहीं हुई हैं, मेरे अन्य स्रोत जो उनके संदर्भ में संकलन त्रुटियां हैं।
- क्योंकि उन अन्य स्रोतों में संकलन त्रुटियां हैं, ये जेएक्सबी कक्षाएं उत्पन्न नहीं होती हैं।
ऐसा लगता है इस को हल करने के लिए दो स्पष्ट संभावनाओं देखते हैं जैसे:
- टिप्पणी से बाहर टूटी हुई संदर्भ, ताकि परियोजना बनाता है और JAXB वर्गों स्वचालित रूप से उत्पन्न होता है। फिर उन उत्पन्न स्रोतों को
/target
से/src/main/java
में कॉपी करें, ताकि उनके संदर्भों में संकलन त्रुटियों का कारण न हो। - एक पूरी तरह से अलग परियोजना बनाएं, जिसमें जैक्सबी सामान के अलावा कुछ भी शामिल नहीं है। इसे मेरे मुख्य प्रोजेक्ट में निर्भरता के रूप में शामिल करें।
क्या मुझे यहां कुछ याद आ रही है? विकल्प # 1 फ्लैट-आउट हास्यास्पद लगता है ... कि केवल वह तरीका हो सकता है जिसमें लोग JAXB का उपयोग करते हैं। विकल्प # 2 अधिक तर्कसंगत लगता है, लेकिन फिर भी अक्षम और बोझिल है। मुझे वास्तव में जेएक्सबी का उपयोग करने के लिए पूरी तरह अलग परियोजना का ओवरहेड लेना है?
क्या कोई और सुरुचिपूर्ण दृष्टिकोण है जो डेवलपर्स उसी परियोजना में जेएक्सबी-जेनरेटेड कक्षाओं का संदर्भ देने के लिए उपयोग करते हैं जहां मेवेन प्लगइन उन्हें उत्पन्न करता है?
अद्यतन:
<build>
<plugins>
<plugin>
<!-- configure the compiler to compile to Java 1.6 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- The name of your generated source package -->
<packageName>com.mypackage</packageName>
</configuration>
</plugin>
</plugins>
</build>
जब मैं mvn clean package
चलाने के लिए, मैं देख रहा हूँ मेरी JAXB सूत्रों के नीचे /target
उपनिर्देशिका उत्पन्न किया जा रहा DO: अनुरोध करके, यहाँ मेरी पोम के संबंधित भाग है। हालांकि, संकलित चरण के लिए उन उत्पन्न स्रोतों को क्लासपाथ में स्वचालित रूप से जोड़ा नहीं जा रहा है।
बाद संकल्प अद्यतन: ऐसा लगता है कि मेरे संकलन मुद्दों तथ्य यह है कि मैं ग्रहण में चल रहा था के साथ क्या करना अधिक था, और इसके Maven एकीकरण "jaxb2-Maven-प्लगइन" के साथ कुछ मुद्दों है। उस मुद्दे और उसके समाधान पर अधिक जानकारी के लिए this StackOverflow question देखें।
कृपया पीओएम के प्रासंगिक अनुभाग पोस्ट करें। – jiggy