2

我有一个多模块项目,它有一个父pom.xml模块和几个模块,其中一些模块相互依赖。在项目目录中我可以调用

mvn test

在每个模块中运行单元测试。这里没问题。但如果我打电话

mvn site

其中一个模块报告

[ERROR] Failed to execute goal on project myModule_C: Could not resolve dependencies 
for project org.myModule_C:jar:0.0.1-SNAPSHOT: The following artifacts could not be
resolved: org.myModule_A:jar:0.0.1-SNAPSHOT, org.myModule_B:jar:0.0.1-SNAPSHOT: Failure
to find org.myModule_A:jar:0.0.1-SNAPSHOT in http://artifactory-server:8081/artifactory/repo
was cached in the local repository, resolution will not be reattempted until the update
interval of server has elapsed or updates are forced -> [Help 1]

我认为这不应该发生,因为这些依赖项是在“mvn 测试”期间发现的。此外,它们不在工件服务器中,而是在父项目中。错误中提到的目标就是目标site。为什么mvn test成功(关于它找到的依赖项)mvn site而不成功?我是否必须以特殊的方式构建站点 - 因为这是一个反应堆构建?

4

1 回答 1

2

您应该mvn install至少执行一次。请参阅Maven 构建生命周期Maven in 5 Minutes 中的更多信息。

这是概述

Maven 阶段

尽管几乎没有完整的列表,但这些是执行的最常见的默认生命周期阶段。

validate:验证项目是否正确并且所有必要的信息都可用

compile: 编译项目的源代码

test:使用合适的单元测试框架测试编译的源代码。这些测试不应该要求打包或部署代码

package:获取已编译的代码并将其打包成可分发的格式,例如 JAR。

integration-test:如有必要,将包处理并部署到可以运行集成测试的环境中

verify:运行任何检查以验证包是否有效并符合质量标准

install:将包安装到本地存储库中,作为本地其他项目的依赖项

deploy:在集成或发布环境中完成,将最终包复制到远程存储库以与其他开发人员和项目共享。

除了上面的默认列表之外,还有另外两个值得注意的 Maven 生命周期

他们是:

clean:清理先前构建创建的工件

site:为此项目生成站点文档

我希望这可能会有所帮助。

于 2013-03-06T00:59:41.627 回答