मैं Maven Shade Plugin
के minimizeJar
का उपयोग कर उबरजार के आकार को कम करने की कोशिश कर रहा हूं। ऐसा लगता है कि minimizeJar
में केवल उन वर्गों को शामिल किया गया है जो कोड में स्थिर रूप से आयात किए जाते हैं (मुझे संदेह है क्योंकि org\apache\commons\logging\
परपर दिखाई देता है लेकिन impl
पैकेज के कोई भी वर्ग शामिल नहीं हैं, इसलिए java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl
फेंकते समय मैं उबेर-जार चलाता हूं)।क्लास फाइलों को शामिल करने के लिए मेवेन छाया मिनीमाइज जार को कॉन्फ़िगर करें
वहाँ किसी भी तरह से मैं Maven के शेड प्लगइन बता कोई बात नहीं क्या minimizeJar
पता चलता अंतिम जार में निर्दिष्ट संकुल शामिल करने के लिए कर सकता है?
यहाँ मैं क्या कोशिश कर रहा हूँ की पोम टुकड़ा:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<minimizeJar>true</minimizeJar>
<filters>
<filter>
<artifact>commons-logging:commons-logging</artifact>
<includes>
<include>org/apache/commons/logging/**</include>
</includes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.myproject.Main</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
'संगठन/अपाचे/कॉमन्स/लॉगिंग/** 'केवल निर्देशिका से मेल खाता है, तो आप शायद सभी फाइलों से मेल खाना चाहते हैं। इसके बजाए 'संगठन/अपाचे/कॉमन्स/लॉगिंग/**/*' का प्रयोग करें। – Corubba
आपके सुझाव के बाद, मैंने कोशिश की ... लॉगिंग/** ', '... लॉगिंग/**/*', '... लॉगिंग /**/*.*' लेकिन कोई भी काम नहीं किया। मुझे लगता है कि समस्या शामिल है पहले शामिल हैं तो minimizeJar सब कुछ अनदेखा करता है और जार को बंडल करता है जैसा कि यह सोचता है उपयुक्त है। – kunal