<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
</execution>
</executions>
</plugin>
<configuration>
<excludeScope>test</excludeScope>
</configuration>
[INFO] --- maven-dependency-plugin:2.10:copy-dependencies (copy-dependencies) @ app ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.006 s
[INFO] Finished at: 2021-02-15T10:32:26+03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.10:copy-dependencies (copy-dependencies) on project app: Can't exclude Test scope, this will exclude everything. -> [Help 1]
PS:请不要建议我在这里使用assembly或其他fat-jar插件,因为我有意复制依赖项jar用于Docker映像构建优化:一层用于依赖项,另一层用于jar,在任何依赖项改变之前,依赖项层总是被缓存:
COPY target/dependency /usr/lib/app/lib
COPY target/${JAR_FILE} /usr/lib/app/target.jar
解决方案可能在IncludeScope
描述中:
要包括的范围。空字符串表示所有作用域(默认值)。被解释的作用域是Maven看到的作用域,而不是POM中指定的作用域。总之:
runtime
作用域提供运行时和编译依赖项,compile
作用域提供编译、提供和系统依赖项,test
(默认)作用域提供所有依赖项,提供的
作用域只提供了提供的依赖项,system
作用域只提供系统依赖项。我试图从命令行显示我正在使用maven dependency插件版本3.1.2开发的项目的完整依赖关系树,但是目标(以及maven dependency插件中的任何其他目标)没有显示依赖关系。插件的文档(https://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.html)声明默认情况下包含所有作用域,因此不需要使用-Dsc
我有一个编译和运行时所需的依赖项,但我想在运行测试时将其排除。这可能吗?也许,通过设置个人资料?但是,如何仅在生命周期阶段停用它?
我想知道为什么我的简单spring boot项目不再有效。它基本上直接来自spring示例,其中一个控制器说hello world。我使用的是spring boot starter jetty和spring boot v1.1.10(也尝试了1.2.0)。我有一些使用嵌入式solr的单元测试,所以solr核心被标记为<代码> 我认为测试范围的依赖关系不应该干扰编译范围的依赖关系,并且“仅适用于测试
有时,您可能需要以特定顺序调用测试用例中的方法,或者您可能希望在方法之间共享一些数据和状态。 TestNG支持这种依赖,因为它支持在测试方法之间声明显式依赖关系。 TestNG允许您指定依赖项 - 在@Test注释中使用属性dependsOnMethods ,或。 在@Test注释中使用属性dependsOnGroups 。 示例使用dependsOnMethods 创建一个类 在C:\》Test
41.1 测试范围内的依赖 如果使用了spring-boot-starter-test“启动器”(scope为test),将得到以下库: JUnit —— Java程序单元测试事实上的标准 Spring Test & Spring Boot Test —— 工具类以及支持Spring Boot程序的集成测试 AssertJ —— 一个优美的断言库 http://hamcrest.org/JavaH
我需要从maven Dependence插件中排除单个工件:复制依赖项。 在文档上:https://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html我发现了两个有趣的选择: ExcludeArtifactId,它将排除与给定工件id匹配的所有工件(组id上的通配符) ExcludeGroupId