根据the docs,maven-invoker-plugin是“线程安全的并支持并行构建”。然而,当我与-T 1C
建立由多模块项目中,我得到这样一个错误如下:maven-invoker-plugin并行构建“伪像未完全组装”错误
[错误]未能执行目标org.apache.maven.plugins:Maven的调用,插件:1.10:在项目上安装(集成测试)my-archetype:无法安装项目依赖项:MavenProject:com.tavianator:my-archetype:1.6-SNAPSHOT @ /home/tavianator/code/Project/my-archetype/pom.xml:Failed安装项目工件:MavenProject:com.tavianator:my-project:1.6-SNAPSHOT @ /home/tavianator/code/Project/my-project/pom.xml:未能安装工件:com.tavianator:my-project:jar :1.6-SNAPSHOT:工件未完全拼装:/ home/tavianator/code/Project/my-project/target/classes - > [Help 1]
项目布局是这样的:
Root
|--Project 1
|--Project 2
|--Archetype (depends on Project 1, scope=test)
原型集成测试使用maven-调用,插件相关的依赖(根和项目1)安装到本地存储库中,然后运行正常原型整合试验。在并行构建中,Archetype和Project 2同时运行。当maven-invoker-plugin运行时,它会尝试将Project 2安装到本地repo,但是Project 2尚未构建,因此出现错误。
但是因为项目2甚至不需要测试,所以我应该能够通过显式安装所需的依赖关系来解决问题。我不明白如何让调用者插件来做到这一点,但是我可以使用另一个插件吗?
我报告了maven-invoker-plugin bug here。我有一个演示错误here的示例项目。
我有点困惑。您是否在尝试对原型进行集成测试?你能显示完整的pom文件吗?除了你在哪里定义了maven-invoker-plugin? – khmarbaise
是的,我正在尝试为原型做一个集成测试。但生成的项目依赖于“Project 1”,所以我必须将其安装在本地repo中,否则将不会被找到。我会尝试制作一个独立的复制器并发布它。 –
或者将它附加到您创建的jira上... – khmarbaise