Java 生成maven多模块jar文件时出错

Java 生成maven多模块jar文件时出错,java,maven,Java,Maven,目前我与maven有一个多模块项目,在super pom中我添加了项目的模块。在SparkapBuilder模块中,我打算构建包含SparkDriver和SparkProcess项目的jar项目。 为了从SparkapBuilder模块中实现这一点,添加maven assembly插件,我看到它通过添加我的2个模块来构建项目,但问题是它正在生成包含本地存储库中所有依赖项的jar,因此jar的重量超过150MB 这是我的SparkapBuilderPom: <profile>

目前我与maven有一个多模块项目,在super pom中我添加了项目的模块。在SparkapBuilder模块中,我打算构建包含SparkDriver和SparkProcess项目的jar项目。

为了从SparkapBuilder模块中实现这一点,添加maven assembly插件,我看到它通过添加我的2个模块来构建项目,但问题是它正在生成包含本地存储库中所有依赖项的jar,因此jar的重量超过150MB

这是我的SparkapBuilderPom:

<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
不包含整个本地存储库,只包含整个依赖项树。

非常感谢您的帮助,让我检查依赖项树,然后重新组织依赖项,我想我应该使用依赖项管理。我会在调整后尽快发布我的评论和结果