是否可以在本地仓库中已安装的人工制品上执行生命周期目标(例如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
答案 0 :(得分:0)
不,这是不可能的。 Maven插件(通常)仅适用于项目源。
如果您唯一关心的是反复重新编译项目,请考虑将项目拆分为核心部分和集成测试部分。然后,当运行集成测试时,您只需要重新编译集成测试部分。