में "मूल" के साथ उपसर्ग किया गया है, मैं एक साथ बंडल किए गए सभी जावा निर्भरताओं के साथ एक मोनोलिथिक जार बनाने के लिए "छाया" Maven2 प्लगइन का उपयोग कर रहा हूं। pom.xml
के प्रासंगिक अनुभागों बिल्कुल स्पष्ट है:मेवेन "छायांकित" JAR फ़ाइल नाम
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<finalName>${project.artifactId}-${project.version}-SHADED</finalName>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.mypackage.MyClass</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
हालांकि, निर्माण परिणाम अजीब हैं। ऐसा लगता है कि दो फ़ाइलों वास्तव में इस Maven प्लगइन द्वारा बनाई गई हैं:
myartifact-1.0.0-SHADED.jar (zero bytes)
original-myartifact-1.0.0-SHADED.jar (10 MB)
उपसर्ग के साथ JAR फ़ाइल "मूल" ठीक से बनाया गया है, और कार्यों ठीक। मुझे लगता है कि मैं उस उपसर्ग को तोड़ने के लिए बस इसका नाम बदल सकता हूं, और अपने मजेदार तरीके से जा सकता हूं।
हालांकि, मैं "छाया" प्लगइन के साथ यहां क्या हो रहा है, इस बारे में बहुत उत्सुक हूं। ऐसा लगता है कि "मूल" फ़ाइल अस्थायी काम करने वाली अंतरिक्ष प्रकार की चीज़ है, जिसका उद्देश्य प्रक्रिया के अंत में बदला जा सकता है, और अंतिम नामकरण पूरा नहीं होता है। इसके लिए कोई स्पष्ट स्पष्टीकरण नहीं है, हालांकि (यानी फाइल सिस्टम अनुमतियां, आदि)। क्या किसी ने कभी यह देखा है?
आप स्टीवर्ट के उत्तर में अपना चेक मार्क स्विच करने पर विचार कर सकते हैं। – Gray
'/tmp outputDirectory>' सेट करने के लिए चारों ओर एक कार्य है। 'मूल - *। Jar' फ़ाइल अभी भी लिखी गई है, लेकिन कम से कम यह विकास पथ में नहीं है। –