目前,我们的maven构建使用jar-with-dependencies
包含jar中的所有依赖项。
我们希望将其拆分为两个独立的jar,一个包含项目应用程序代码和文件,另一个包含依赖项。
这是怎么做到的?
由于
答案 0 :(得分:1)
这是使用maven Assembly插件
完成的答案 1 :(得分:0)
使用maven-shade-plugin代替以下配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<configuration>
<finalName>${project.artifactId}-${project.version}-libs</finalName>
<artifactSet>
<excludes>
<exclude>${project.groupId}:${project.artifactId}</exclude>
</excludes>
</artifactSet>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
诀窍是定义一个特定的最终名称。这样可以避免替换默认的jar,它由maven-jar-plugin打包。默认名称为 $ {project.artifactId} - $ {project.version} 。所以只需添加一个后缀,如 libs 。然后排除工件本身,因为类不应该打包两次。
构建将产生两个jar文件: