को अजीब कलाकृतियों धक्का मैं एक Maven परियोजना जहाँ मैं एक युद्ध फ़ाइल का निर्माण कर रहा हूँ के साथ निर्माण, लेकिन मैं यह भी Maven-जार-प्लगइन का उपयोग कर रहा एक ही परियोजना में एक जार बनाने के लिए।Maven युद्ध और जार आंतरिक रेपो
- डिस्क्लेमर - मुझे पता है कि यह करने के लिए यह 'सही' तरीका नहीं है, लेकिन कुछ अन्य समस्याएं होती हैं जब इसे एक जार परियोजना में विभाजित करते हैं और कुछ तृतीय पक्ष प्लगइन के साथ एक अलग युद्ध प्रोजेक्ट होता है।
मुझे इसके साथ कुछ अजीब व्यवहार दिखाई दे रहा है। नीचे मेरी परियोजना संरचना है।
warproject
-src
--main
---webapp
----WEB-INF
-----web.xml
---java
----com.test.myclass
-----test.java
-pom.xml
जब मैं इस परियोजना का निर्माण, मैं, मेरे लक्ष्य निर्देशिका में सही युद्ध और जार फ़ाइल प्राप्त अपने स्थानीय .m2 रेपो कुछ अजीब होता है में हालांकि। स्थापित की गई युद्ध फ़ाइल को सही ढंग से युद्ध-जार-0.0.1-SNAPSHOT.war नाम दिया गया है, हालांकि इस फ़ाइल की सामग्री मेरी जार फ़ाइल की सामग्री है। यह तब भी होता है जब मैं उलटा करता हूं। यानी यदि मैं अपनी परियोजना को एक जार बनाने और युद्ध बनाने के लिए मेवेन-वॉर-प्लगइन का उपयोग करने के लिए सेटअप करता हूं, तो मेरी लक्षित निर्देशिका में अभिलेखागार सही हैं, लेकिन मेरे स्थानीय रेपो में मेरी युद्ध फ़ाइल की सामग्री के साथ जार फ़ाइल है। नीचे दी गई पोम फ़ाइल है जिसका मैं उपयोग कर रहा हूं।
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>war-jar</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<jarName>${project.artifactId}-${project.version}-client</jarName>
</configuration>
<executions>
<execution>
<id>make-a-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</project>
इसके लिए कंसोल आउटपुट निम्न है, यह दर्शाता है कि जार युद्ध के रूप में अपलोड किया जा रहा है।
Installing /home/me/work/src/war-jar/target/war-jar-0.0.1-SNAPSHOT.jar to /home/me/.m2/repository/com/test/war-jar/0.0.1-SNAPSHOT/war-jar-0.0.1-SNAPSHOT.war
--UPDATE मैं इस काम के है, लेकिन मुझे पैकेज से स्थापित करने के लिए अपने 'बनाने के एक जार' निष्पादन के चरण बदलना पड़ा। यह ठीक काम करता है और सही कलाकृतियों को अपलोड किया जाता है, लेकिन मैं अभी भी उलझन में हूं कि इससे कोई फर्क क्यों पड़ता है। जाहिर है कि आर्टिफैक्ट एक अलग जीवन चक्र चरण में उत्पन्न होता है, और इसलिए परियोजना के लिए मूल इंस्टॉल के समय नहीं है, इसलिए गलत फ़ाइल अपलोड नहीं की गई है। यह एक 'हैक' जैसा लगता है और मैं समझना चाहता हूं कि यह इस तरह से क्यों व्यवहार कर रहा है।
जार/युद्ध बनाने के लिए आप किस आदेश का उपयोग करते हैं? एमवीएन स्थापित करें? –
हां एमवीएन परियोजना पर स्थापित करें। – broschb