在Jenkins建立Maven -SNAPSHOT项目

时间:2013-11-01 16:57:37

标签: maven jenkins snapshot

我相信答案很简单,但我还没弄清楚如何去做。

问题是:

我有一个第三方项目,正在从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

解决方案:

  1. 在Jenkins / Configuration / Build / Advanced中检入使用私有Maven存储库
  2. 选择策略:本地工作区
  3. rm -R *
  4. 删除/ workspace文件夹中的所有内容

    @Grove:非常感谢你的支持!

3 个答案:

答案 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)

解决方案:

  • 在Jenkins / Configuration / Build / Advanced中检入使用私有Maven存储库
  • 选择策略:本地工作区
  • 通过rm -R *
  • 删除/ workspace文件夹中的所有内容

答案 2 :(得分:1)

为什么使用来自第三方的SNAPSHOT依赖?标准是使用RELEASE版本,对吗?

回答无论如何,使用私有maven存储库为您工作的事实只证明了一件事,即服务器maven存储库中的negative cache导致问题。一年多前从我这里看到Q and A,当完全相同的解决方案对我有用时,对于另一个问题,我会将其标记为答案。只是发现几个月后,我没有找到问题的根本原因,只是发现了一个工作量。

要测试此理论,请设置<updatepolicy> true <updatepolicy>use maven -U clean install。它将与您使用私人仓库的解决方案具有相同的效果。