Java 生成maven多模块jar文件时出错
目前我与maven有一个多模块项目,在super pom中我添加了项目的模块。在SparkapBuilder模块中,我打算构建包含SparkDriver和SparkProcess项目的jar项目。 为了从SparkapBuilder模块中实现这一点,添加maven assembly插件,我看到它通过添加我的2个模块来构建项目,但问题是它正在生成包含本地存储库中所有依赖项的jar,因此jar的重量超过150MB 这是我的SparkapBuilderPom:Java 生成maven多模块jar文件时出错,java,maven,Java,Maven,目前我与maven有一个多模块项目,在super pom中我添加了项目的模块。在SparkapBuilder模块中,我打算构建包含SparkDriver和SparkProcess项目的jar项目。 为了从SparkapBuilder模块中实现这一点,添加maven assembly插件,我看到它通过添加我的2个模块来构建项目,但问题是它正在生成包含本地存储库中所有依赖项的jar,因此jar的重量超过150MB 这是我的SparkapBuilderPom: <profile>
<profile>
<id>dev</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.streaming.example.DirectStreaming</mainClass>
</manifest>
</archive>
<finalName>JavaStreamingDirect</finalName>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.streaming.example.DirectStreaming</mainClass>
</manifest>
</archive>
<finalName>JavaStreamingDirect</finalName>
</configuration>
</plugin>
</plugins>
</build>
</profile>
...
<dependencies>
<dependency>
<groupId>com.spark.driver</groupId>
<artifactId>SparkDriver</artifactId>
<version>0.0.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.spark.streaming</groupId>
<artifactId>SparkProcess</artifactId>
<version>0.0.2-SNAPSHOT</version>
</dependency>
</dependencies>
发展
org.apache.maven.plugins
maven汇编插件
2.5
装配
包裹
单一的
带有依赖项的jar
真的
解放党/
com.streaming.example.DirectStreaming
JavaStreamingDirect
org.apache.maven.plugins
maven jar插件
3.1.1
真的
解放党/
com.streaming.example.DirectStreaming
JavaStreamingDirect
...
com.spark.driver
斯帕克德河
0.0.2-快照
com.spark.streaming
火花加工
0.0.2-快照
你知道为什么要在组装阶段添加我的整个本地存储库吗
非常感谢
关于带有依赖项的
jar也包含所有可传递的依赖项。这些通常是运行项目所需的,因为它们是依赖项的依赖项
所以这个罐子很大,这并不奇怪。您应该查看mvn dependency:tree
中的大部分内容来自何处,然后您可以通过更改模块的依赖关系来减少数量
因此:带有依赖项的jar
不包含整个本地存储库,只包含整个依赖项树。非常感谢您的帮助,让我检查依赖项树,然后重新组织依赖项,我想我应该使用依赖项管理。我会在调整后尽快发布我的评论和结果