【发布时间】:2016-10-28 12:01:16
【问题描述】:
我克隆了Apache ActiveMQ Artemis项目的git仓库(https://github.com/apache/activemq-artemis)然后输入
mvn -Ptests test -pl :integration-tests
我很惊讶地看到如下日志消息
...
Downloading: http://repository.apache.org/snapshots/org/apache/activemq/artemis-selector/1.4.0-SNAPSHOT/artemis-selector-1.4.0-20160625.030221-11.jar
Downloading: http://repository.apache.org/snapshots/org/apache/activemq/artemis-core-client/1.4.0-SNAPSHOT/artemis-core-client-1.4.0-20160625.030211-11.jar
...
因为例如artemis-core-client 包含在我一开始克隆的 git 存储库中,我预计 maven 只是从那里构建它。
这样,当我在核心客户端源中进行更改时,它们会被集成测试拾取。
相反,maven 正在从存储库下载 jar。
问题:如何配置 maven 以始终构建 git 存储库中的所有模块并仅下载“真实”依赖项,即不在 git 存储库中的东西?
【问题讨论】:
-
本质上,这与这个问题相同:stackoverflow.com/questions/33131880/… 您应该从根项目而不是直接在模块内运行 Maven。这是因为尚未安装依赖项,因此 Maven 会尝试下载它们。
-
@Tunaki 所以“-pl :integration-tests”是导致 maven 下载而不是编译的原因。正确的?因为我在主项目 .pom 文件所在的目录中运行 mvn。
-
不,主项目中没有集成测试模块,请查看我的答案。您正在测试/主项目上执行 maven,而不是库/主项目。
标签: maven build dependency-management multi-module activemq-artemis