【问题标题】:Release project with previous release version of a snapshot dependency on Jenkins使用 Jenkins 上快照依赖项的先前发布版本发布项目
【发布时间】:2017-11-17 13:46:23
【问题描述】:

我看到了一些类似的问题,但没有找到任何可行的解决方案。现在它已经找到解决它的一天。 那么问题来了。

我有一个项目,我想通过 Jenkins 工作发布 maven。但是这个项目有一个快照依赖。

<dependency>
    <groupId>com.domain</groupId>
    <artifactId>market</artifactId>
    <version>121b4-SNAPSHOT</version>
</dependency>

以下是我的项目信息:

    <groupId>com.domain.tools</groupId>
    <artifactId>cash</artifactId>
    <name>Cash Flow</name>
    <version>123b4-SNAPSHOT</version>

当我尝试使用以下命令手动发布项目时:

mvn release:clean release:prepare release:perform

我得到了解决依赖快照版本的提示,所以我只输入了之前发布的'market'版本 - 121b3,然后一切正常。

但是当我尝试设置 Jenkins 作业来发布项目时,问题是如何解决对 Jenkins 的快照依赖(因为我们在手动执行时会得到提示),因为 maven 发布插件不允许快照版本的依赖关系。

谁能告诉我

  1. 在 Jenkins 中将快照版本替换为以前版本的依赖项是否可行?
  2. 如果可能,我们该怎么做?

提前致谢。

【问题讨论】:

  • 你需要先释放包含依赖的项目,然后你可以释放另一个依赖它的项目...
  • 有什么方法可以让我们自动化这个,因为如果我想发布项目的依赖之前发布的版本?

标签: maven jenkins maven-plugin maven-release-plugin


【解决方案1】:

您不能对版本中的“SNAPSHOT”一词有任何依赖。

你必须要么

1) 发布 123b4-SNAPSHOT,因此它位于 Jenkins 使用的共享存储库中

2) 拥有一个嵌入式存储库(其中您有一个添加到项目的迷你存储库)并将 123b4-SNAPSHOT 重命名为 123b4,请参阅here 以获取示例

 <repositories>
    <repository>
      <id>in-project</id>
      <name>In Project Repo</name>
      <url>file://${project.basedir}/libs2</url>
    </repository>
  </repositories>

我推荐选项 1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    相关资源
    最近更新 更多