我正在使用maven程序集插件来打包我的项目的发行版,其中包含一个带有依赖项jar的lib文件夹,一个包含资源的配置文件夹和包含项目类文件的jar文件 . 我需要从lib文件夹中的一个依赖项jar中排除一个包 .
程序集插件有一个解压缩依赖项jar的选项,如果使用它,那么你可以用assembly.xml排除一个包,如下所示:
<assembly>
<formats>
<format>tar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<unpack>true</unpack>
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>./${project.build.finalName}/lib</outputDirectory>
<scope>runtime</scope>
<unpackOptions>
<excludes>
<exclude>**/excludedpackage/**<exclude>
</excludes>
</unpackOptions>
</dependencySet>
</dependencySets>
</assembly>
我的问题是,如何在不使用unpack的情况下从依赖jar中排除一个包(即将所有依赖项打包为jar)?理想情况下,我想要一个可以使用程序集插件完成的解决方案 - 如果不可能,那么实现我想做的最简单的方法是什么?
1 回答
在解压缩和过滤后,我认为你不能重新包装JAR . 您可以在Maven Assembly Plugin JIRA提交增强请求 .
一个(复杂的)解决方法是使用
maven-dependency-plugin
到unpack项目的依赖项,你要从中排除某些东西,然后再次使用maven-jar-plugin
到jar这些类,不包括新JAR中的包,最后为maven-assembly-plugin
为maven-assembly-plugin
声明一个<files>
元素特别的依赖 .样本配置将是
然后在您的装配配置中,您将拥有: