我对 Jenkins、Maven 和 Tycho 有一点奇怪的问题,很难找出谁是罪魁祸首。
所有 SCM 触发的构建都失败,但所有手动触发的构建都成功。
詹金斯版本:詹金斯版本。1.527
Maven 版本:3.05
我有一个模块化的第谷构建:
<modules>
<module>../main.plugin.test</module>
<module>../main.plugin.internationalization.at</module>
<module>../crud.plugin</module>
<module>../rest.plugin</module>
<module>../main.plugin</module>
<module>../main.feature</module>
<module>../product</module>
<module>../target-definition</module>
<module>../rest.plugin.test</module>
</modules>
Jenkins 被配置为带有模块的简单 Maven 构建。
它只是执行:
-X clean deploy
当触发 SCM 构建时,某些模块不会构建。
当我手动构建它时,一切都很好:
这种行为是一致的。我已经试过了
- 切换到不同的 Maven 版本 (3.05 / 3.04)
- 在构建之前删除整个工作区
- 清理所有来源
- 运行
-X deploy
(不清洁)
任何数量的手动调用都会成功。并且任何数量的 scm 触发器都会失败。
两个 Maven 日志看起来完全相同,直到(工作):
[INFO] Reactor Build Order:
[INFO]
[INFO] client-master
[INFO] crud-plugin
[INFO] main-plugin
[INFO] ------------.main.plugin.test
[INFO] ------------.main.plugin.internationalization.at
[INFO] rest-plugin
[INFO] main-plugin
[INFO] ------------.product
[INFO] target-definition
[INFO] ------------.rest.plugin.test
和(失败):
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] main-plugin
[INFO] ------------.plugin.test
[INFO] ------------.main.plugin.internationalization.at
[INFO] rest-plugin
[INFO] main-plugin
[INFO] ------------.product
[INFO] ------------.rest.plugin.test
因此,最终的错误消息是:
Caused by: java.lang.IllegalStateException: ------------..client:------------..crud.plugin:eclipse-plugin:1.0.0-SNAPSHOT does not provide an artifact with classifier 'null'
客户特定的模块名称替换为------------。在这个问题中。