Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用maven assembly插件从依赖项jar中排除包?_Java_Maven_Jar_Packaging_Maven Assembly Plugin - Fatal编程技术网

Java 如何使用maven assembly插件从依赖项jar中排除包?

Java 如何使用maven assembly插件从依赖项jar中排除包?,java,maven,jar,packaging,maven-assembly-plugin,Java,Maven,Jar,Packaging,Maven Assembly Plugin,我正在使用maven assembly plugin打包我的项目的一个发行版,其中包含一个带有依赖项jar的lib文件夹、一个带有资源的config文件夹和一个包含项目类文件的jar文件。我需要从lib文件夹中的一个依赖项jar中排除一个包 assembly插件有一个解包依赖项JAR的选项,如果使用此选项,则可以排除带有assembly.xml的包,如下所示: 焦油 假的 真的 假的 ./${project.build.finalName}/lib 运行时 **/不包括包装/** 我的问题是

我正在使用maven assembly plugin打包我的项目的一个发行版,其中包含一个带有依赖项jar的lib文件夹、一个带有资源的config文件夹和一个包含项目类文件的jar文件。我需要从lib文件夹中的一个依赖项jar中排除一个包

assembly插件有一个解包依赖项JAR的选项,如果使用此选项,则可以排除带有assembly.xml的包,如下所示:


焦油
假的
真的
假的
./${project.build.finalName}/lib
运行时
**/不包括包装/**

我的问题是,如何在不使用解包的情况下将包从依赖项jar中排除(即将所有依赖项打包为jar)?理想情况下,我想要一个可以使用汇编插件完成的解决方案-如果不可能,那么实现我想要做的最简单的方法是什么?

我不认为您可以在解压缩和过滤JAR后重新打包它。您可以在网站上提交增强请求


一个(复杂的)解决方法是使用
maven依赖插件
处理您想要从中排除的项目依赖,然后再次使用
maven-jar插件
对类执行操作,排除新jar中的包,最后为
maven程序集插件
为该特定依赖项声明一个
元素

示例配置如下所示:


maven依赖插件
2.10
打开
解包依赖项
准备包装
${project.build.directory}/unpack/temp
maven jar插件
2.6
重新包装
罐子
准备包装
${project.build.directory}/unpack/temp
**/不包括包装/**
${project.build.directory}/unpack
精彩图书馆重新包装
然后在程序集配置中,您将有:


${project.build.directory}/unpack/wonder-library-repackaged.jar
/${project.build.finalName}/lib