罐子太大。如何在Maven项目中减小jar大小?

时间:2019-05-08 18:41:44

标签: java maven build size deeplearning4j

当我构建Maven项目时,我得到一个300mb的大罐子。它必须在 75mb。有没有一种方法可以不编译未使用的Maven库/依赖项? 还是有办法找出我的项目不需要的库/依赖项?

2 个答案:

答案 0 :(得分:1)

https://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html是您要寻找的插件。它将找到使用+未声明(= transitive)依赖项和未使用+已声明的依赖项。 请注意,它无法检测到反射。

答案 1 :(得分:0)

听起来像您需要包括Skinny WAR选项。您能否在您的项目中尝试以下POM,并让我们知道是否有助于将其从300MB减少到?

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>${war-plugin-version}</version>
    <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
        <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
            </manifest>
        </archive>
        <webResources>
            <resource>
                <filtering>true</filtering>
                <directory>src/main/webapp</directory>
                <includes>
                    <include>**/web.xml</include>
                </includes>
            </resource>
        </webResources>
    </configuration>
</plugin>