我相信答案很简单,但我还没弄清楚如何去做。
问题是:
我有一个第三方项目,正在从github克隆,所以我不会在那里改变任何东西,但我需要这个项目来完成我与MUnit的合作。
该项目是mule-interceptor-module,版本为3.4-M4-SNAPSHOT。
我在Jenkins中创建了一个版本,我希望在它之后获得 mule-interceptor-module-3.4-M4-SNAPSHOT.jar ,但 Jenkins REMOVES来自jar名称的-SNAPSHOT并使用新版本更新pom.xml:3.4-M4而不是3.4-M4-SNAPSHOT 。该项目在其依赖项中使用此项目(munit)具有3.4-M4-SNAPSHOT。所以我需要版本中的SNAPSHOT。
我尝试做的事情:
我尝试在服务器上构建相同的项目,我的Jenkins安装在该服务器上,只使用mvn clean install,我得到了mule-interceptor-module-3.4-M4-SNAPSHOT.jar。
问题是:
如何调整Jenkins以便我最终可以进行SNAPSHOT构建?
我的工作设置:
源代码管理:
前步骤:
Jenkins Console output Jenkins Console output wirh -X
解决方案:
rm -R *
@Grove:非常感谢你的支持!
答案 0 :(得分:1)
我可以在日志中看到:Your branch is ahead of 'origin/3.4.x' by 1 commit.
和Building Mule Interceptor Module 3.4-M4
。可能是你的版本在pom中有3.4-M4作为版本吗?
答案 1 :(得分:1)
解决方案:
答案 2 :(得分:1)
为什么使用来自第三方的SNAPSHOT依赖?标准是使用RELEASE版本,对吗?
回答无论如何,使用私有maven存储库为您工作的事实只证明了一件事,即服务器maven存储库中的negative cache导致问题。一年多前从我这里看到Q and A,当完全相同的解决方案对我有用时,对于另一个问题,我会将其标记为答案。只是发现几个月后,我没有找到问题的根本原因,只是发现了一个工作量。
要测试此理论,请设置<updatepolicy> true <updatepolicy>
和use maven -U clean install
。它将与您使用私人仓库的解决方案具有相同的效果。