在本地仓库中安装的人工制品上执行maven生命周期目标

时间:2016-11-29 10:12:58

标签: java maven jenkins

是否可以在本地仓库中已安装的人工制品上执行生命周期目标(例如integration-test)?

我的用例如下。我有一个多模块项目,有许多模块,专门用于各种类型的集成测试(一致性测试,性能测试等)。我需要使用不同的环境配置多次调用这些集成。这些配置表示为maven配置文件,并使用属性进行参数化。我想避免一遍又一遍地重新编译项目。

我希望有一个构建CI作业执行mvn安装,然后分离执行集成测试的CI作业,一旦构建CI作业通过就会触发。集成测试只需调用已安装的artefact的集成测试生命周期阶段,设置配置文件并传递参数

我已尝试将mvn指向本地存储库中的.pom文件,但这不起作用。它失败了,因为它无法在artefact自己的JAR文件中找到类(就好像它没有被放在类路径上) - 如果我有我的集成作业签出树并在其中调用pom.xml,则不会出现这个问题源树。

mvn -f ~/.m2/repo/x/y/z/myproj-perftests-x.x.x-SNAPSHOT.pom integration-test -Pmyprofile -Dparam1=blah

1 个答案:

答案 0 :(得分:0)

不,这是不可能的。 Maven插件(通常)仅适用于项目源。

如果您唯一关心的是反复重新编译项目,请考虑将项目拆分为核心部分和集成测试部分。然后,当运行集成测试时,您只需要重新编译集成测试部分。