有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在pom中使用mavenassemblyplugin时减小jar大小。用于构建spark应用程序的xml

我正在pom中使用以下插件:maven assembly插件。xml文件,以及在同一文件中提到的许多其他独立依赖项,如下所示,用于使用IntelliJ为我的spark应用程序构建jar文件:

pom。xml Maven汇编插件

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.5.3</version>
    <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id> <!-- this is used for inheritance merges -->
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

pom。xml 其他依赖项:

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-emr</artifactId>
    <version>1.11.125</version>
</dependency>

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-s3</artifactId>
    <version>1.11.106</version>
</dependency>

举几个例子

发生的事情是,这个maven程序集插件将所有依赖项jar与主jar文件捆绑在一起,最终jar文件的大小超过150+Mb

有没有一种方法可以让我从pom中只提到一个特定的依赖项。要包含在最终jar文件中并排除所有其他依赖项的xml

如果jar中只包含这个依赖项,那么最终的jar大小应该会降到1MB以下

我想在最后一个jar中包含的特定依赖项如下所示:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20200518</version>
</dependency>

共 (0) 个答案