Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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 jar中排除测试依赖项?_Java_Maven_Jar_Maven 3_Maven Shade Plugin - Fatal编程技术网

Java 如何从着色的maven jar中排除测试依赖项?

Java 如何从着色的maven jar中排除测试依赖项?,java,maven,jar,maven-3,maven-shade-plugin,Java,Maven,Jar,Maven 3,Maven Shade Plugin,我使用的是maven shade插件,我不仅要排除我的测试代码,还要排除着色jar中的测试依赖项。我意识到我可以明确地排除某些工件(比如junit),但这是一项很好的工作,而且很可能会出现一些错误 我正在将minimizeJar设置为true,但我仍然看到我的Junit和Mockito依赖项显示出来。难道没有办法通过配置排除所有测试范围的依赖项吗 确保您的测试依赖项位于测试范围内: <dependencies> <dependency> <g

我使用的是maven shade插件,我不仅要排除我的测试代码,还要排除着色jar中的测试依赖项。我意识到我可以明确地排除某些工件(比如junit),但这是一项很好的工作,而且很可能会出现一些错误


我正在将
minimizeJar
设置为true,但我仍然看到我的Junit和Mockito依赖项显示出来。难道没有办法通过配置排除所有测试范围的依赖项吗

确保您的测试依赖项位于
测试
范围内:

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>
...

您正在使用哪个版本的shade插件?你的pom看起来怎么样?我创建了一个测试项目,使用Junit作为测试范围,而shade插件没有打包它。有可能是另一个不在测试范围内的库将Junit作为依赖项?@mszalbach这是两件事的组合:一,有一个测试依赖项被错误地声明为compile。第二,有一个测试依赖项,它在jar中包含了.java文件,当我查看着色的jar时,我没有注意到扩展名。所以,您是对的,测试依赖项.class文件没有打包。@ryzmek这是两件事的组合:一,有一个测试依赖项被错误地声明为compile。第二,有一个测试依赖项,它在jar中包含了.java文件,当我查看着色jar时,我没有注意到扩展名。我想可能是这样的。这就是为什么我建议
dependency:tree
。这是一个非常有用的工具
mvn dependency:tree