预热maven依赖缓存

预热maven依赖缓存,maven,caching,testing,maven-surefire-plugin,Maven,Caching,Testing,Maven Surefire Plugin,如何预热maven测试的依赖缓存?例如,mvn测试-DskipTests下载一些依赖项,但不是全部,例如,一些maven-surefire插件依赖项仅由mvn测试下载 我想创建文件系统的快照,以提高测试的执行。因此,我希望下载所有依赖项,但我希望在不执行测试的情况下实现这一点 某些依赖项仅在mvn测试期间下载,而不是通过mvn测试-DskipTests下载: Downloading: http://repo1.maven.org/maven2/org/apache/maven/surefire/

如何预热maven测试的依赖缓存?例如,
mvn测试-DskipTests
下载一些依赖项,但不是全部,例如,一些maven-surefire插件依赖项仅由
mvn测试下载

我想创建文件系统的快照,以提高测试的执行。因此,我希望下载所有依赖项,但我希望在不执行测试的情况下实现这一点

某些依赖项仅在
mvn测试期间下载,而不是通过
mvn测试-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-

maven surefire插件仅为mvn测试下载,因为该插件的默认目标执行阶段是测试


我想如果你想执行surefire插件,你可以指定目标执行阶段。

依赖关系是按需解决的:

  • 应用程序代码的编译时版本作为启动构建的第一步被下载

  • 所有需要的插件都会在相应的阶段下载。这还包括它们的可传递依赖项

  • 在编译和执行测试时,将下载测试的依赖项。这些是与
    test
    的依赖关系

因此,在
测试
阶段,您必须已经拥有最新的依赖项,除非您在本地缓存并安装了它们,并且处于脱机模式

要执行此操作,您可以执行以下操作:

mvn依赖项:脱机

要执行此操作,您可以执行以下操作:


mvn依赖关系:解析插件

我们有以下方法来填充Jenkins从属服务器上的Maven缓存:

  • 做一个完整的构建
  • 压缩
    ~/.m2
    文件夹(其中包含缓存的实例)
  • 将其放置并提取到要运行“预热”测试的机器上
  • 自动执行上述步骤以使其保持最新

嗨,谢谢你的回答。我的问题是
mvn测试-DskipTests
不下载surefire,只有
mvn测试
下载。因此,我不知道如何在不执行测试的情况下预热本地缓存。您也可以这样做:
mvn dependency:go offline
。是的,这就是我想要的。依赖项:脱机。。。还有。。。。surefire仍未下载:((值得一份bug报告吗?我将采取一些变通方法来执行一些测试,以获得所有依赖项。mvn依赖项:解决插件包含在mvn依赖项中:脱机。我怀疑某些surefire依赖项仅在运行期间确定。(例如,支持哪个junit。)+1,直到我找到更好的。在我的pom文件中选择要支持的JUnit+mvn依赖项:脱机+mvn测试-DskipTests成功。:[link]()谢谢你的帮助!我想预下载surefire,这样下面的
mvn测试就不会从网上下载任何东西了。更改执行阶段不会有什么不同,我不想执行surefire.execute
mvn test
至少一次。这将下载依赖项,现在下次执行run
mvn test-o时
而不是
mvn测试