2

如何预热我的 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-
4

3 回答 3

10

依赖项是根据需要解决的:

  • 当您开始构建时,应用程序代码的编译时代码将作为第一步下载。

  • 之后在各个阶段下载所需的任何插件。这也包括它们的传递依赖。

  • 当要编译和执行测试时,会下载测试的依赖项。这些是与<scope>test</scope>.

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

解决所有依赖项,您可以执行以下操作:

mvn dependency:go-offline

解析所有插件,您可以执行以下操作:

mvn dependency:resolve-plugins

于 2013-04-10T09:12:23.353 回答
1

maven surefire 插件只为 mvn test 下载,因为这个插件的默认目标执行阶段是测试。

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

于 2013-04-10T08:51:36.373 回答
0

我们有以下方法来填充 Jenkins slave 上的 Maven 缓存:

  • 做一个完整的构建
  • 压缩~/.m2文件夹(其中包含缓存的实例)
  • 将其放置并提取到您要运行“热身”测试的机器上
  • 自动执行上述步骤以使其保持最新和最新。
于 2019-10-09T14:25:13.357 回答