如何预热我的maven测试的依赖缓存?例如。 mvn test -DskipTests
下载了一些依赖项,但不是全部,例如某些maven surefire插件依赖项仅由mvn test
下载。
我想创建我的文件系统的快照,以提高我的测试执行。因此,我希望下载所有依赖项,但我希望在不执行测试的情况下实现此目的。
仅在mvn test
而非mvn test -DskipTests
期间下载的部分依赖项:
Downloading: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire-junit47/2.14/surefire-junit47-2.14.pom
Downloaded: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire- junit47/2.14/surefire-junit47-2.14.pom (4 KB at 13.9 KB/sec)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire-providers/2.14/surefire-providers-2.14.pom
Downloaded: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire-
答案 0 :(得分:7)
根据需要解决依赖关系:
当您开始构建时,下载应用程序代码的编译时间作为第一步。
之后在相应阶段下载所需的所有插件。这还包括他们的传递依赖。
在编译和执行测试时,将下载测试的依赖项。这些是与<scope>test</scope>
的依赖关系。
因此,在您处于test
阶段时,您必须拥有最新的依赖项,除非您已在本地缓存并安装它们并且您处于脱机模式。
到resolve all your dependencies,你可以这样做:
mvn dependency:go-offline
到resolve all the plugins,你可以这样做:
mvn dependency:resolve-plugins
答案 1 :(得分:2)
maven surefire插件仅为mvn测试下载,因为此插件的默认目标执行阶段是测试。
我想如果你想执行surefire插件,你可以指定目标执行阶段。
答案 2 :(得分:0)
我们采用以下方法在Jenkins奴隶上填充Maven缓存:
~/.m2
文件夹(其中包含缓存的实例)