0

我相信答案会很容易,但我还没有弄清楚如何去做。

问题是:

我有一个第三方项目,它是从 github 克隆的,所以我不会在那里更改任何内容,但我需要这个项目来使用 MUnit。

该项目是 mule-interceptor-module,它的版本为 3.4-M4-SNAPSHOT。

我在 Jenkins 中创建了一个构建,我想在它之后获取mule-interceptor-module-3.4-M4-SNAPSHOT.jar,但是Jenkins 从 jar 名称中删除 -SNAPSHOT 并使用新版本更新 pom.xml:3.4-M4 而不是3.4-M4-快照。在其依赖项中使用这个(单元)的项目具有 3.4-M4-SNAPSHOT。所以我需要版本中的快照。

我试图做的事情:

我尝试在安装了我的 Jenkins 的服务器上构建相同的项目,只使用 mvn clean install,我得到了 mule-interceptor-module-3.4-M4-SNAPSHOT.jar。

问题是:

如何调整 Jenkins 以便我最终可以构建 SNAPSHOT?

我的工作设置:

Jenkins 控制台输出 Jenkins 控制台输出 wirh -X

解决方案:

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

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

4

3 回答 3

1

为什么要使用来自第 3 方的 SNAPSHOT 依赖项?标准是使用 RELEASE 版本,对吧?

无论如何,使用私有maven存储库为您工作的事实证明了一件事,即服务器的 maven 存储库中的负缓存导致了问题。一年多前看到我的这个问答,当完全相同的解决方案对我有用时,虽然解决了不同的问题,但我将其标记为答案。几个月后才发现我没有找到问题的根本原因,只是找到了解决方法。

为了检验这个理论,设置<updatepolicy> true <updatepolicy>use maven -U clean install。它将与您使用私人仓库的解决方案具有相同的效果。

于 2013-11-04T15:44:56.050 回答
1

I can see in the logs: Your branch is ahead of 'origin/3.4.x' by 1 commit. and Building Mule Interceptor Module 3.4-M4. Could it be that your revision has 3.4-M4 as a version in the pom?

于 2013-11-01T19:40:34.840 回答
1

解决方案:

  • 在 Jenkins /Configuration/Build/Advanced 中检查使用私有 Maven 存储库
  • 选择策略:本地到工作区
  • 通过 rm -R * 从 /workspace 文件夹中删除所有内容
于 2013-11-01T20:28:34.090 回答