Maven:我怎样才能跳过中央仓库中存在的建筑物?

时间:2012-11-29 15:33:15

标签: maven

我的情况:我的项目包含多个Maven模块。我对其中一个进行了更改。突然间我发现,由于其他模块中的错误,我的项目不再可能被构建。为了解决这个问题,我需要运行SVN UPDATE并重建项目。

我的假设:可能,在我的模块的构建过程中,一些工件从中央存储库中获取并具有最新版本,而其他工件仍然过时并从我的本地存储库获取。

一个问题:每次有人更新另一个Maven模块时,我都不想重建我的项目。我想从中央存储库下载已经构建的文物,而不是自己重建它们。可能吗?

1 个答案:

答案 0 :(得分:0)

您可以告诉Reactor要构建哪些模块。在您只更改单个模块并希望加速构建的情况下,您可以将-pl(项目位置)参数传递给maven。例如:

mvn -pl module-with-changes

这将构建单个模块,同时从本地Maven存储库获取其他依赖项或从Central下载(无论是最新的)。也就是说,如果您已经为整个项目运行了mvn install,并且其他工件尚未在中央存储库中更新,那么Maven会将您的本地工件视为最新工具,并且不会重新下载它们。

使用-pl参数时可能遇到的另一个问题是项目中的其他模块依赖于您正在构建的模块。如果依赖模块中存在问题,则不会通过仅构建依赖关系模型来查看它。为了避免这种情况,你可以传递-amd(也是Make Dependents)。像这样:

mvn -pl module-with-changes -amd

这将触发依赖于更改模块及其依赖项的模块更改+模块的构建。

您可以从此处获取有关Reactor参数的更多信息: http://www.sonatype.com/people/2009/10/maven-tips-and-tricks-advanced-reactor-options/