Jenkins - 检测工件版本更改

时间:2016-06-14 10:25:49

标签: maven jenkins deployment version nexus

我有一个简单的Maven项目,必须产生伪像,例如一些伪影 我还在Jenkins工作,将简单的maven部署到我们的内部Nexus存储库。这是Jenkins在" Maven目标和选项中设定的值"工作领域:

=countif(arrayformula($A:$A&"|"&$B:$B);$A1&"|"&$B1)>1

让我们假设我的maven模块的版本是1.0:

clean source:jar deploy

现在,我想要实现的是检测SCM中的工件版本是否已更改,并在每次更改版本号时构建此作业,例如在设置为1.1之后:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>some.group</groupId>
    <artifactId>some-artifact</artifactId>
    <version>1.0</version>
</project> 

最终目标是尽快在Nexus上部署最新版本的 some-artifact

是否有任何配置或Jenkins插件允许此类检测和作业触发?

2 个答案:

答案 0 :(得分:0)

我不知道它是否有帮助,有几个插件可以集成maven和Jenkins,所以其中一个可能会有一个build int功能来满足你的需要......

顺便说一下,在没有特定插件的情况下执行此操作有很多方法。您可以使用$ {POM_VERSION}变量,该变量随

一起引入

https://issues.jenkins-ci.org/browse/JENKINS-18272

然后将其与前一个版本,先前版本或历史记录等进行比较......这样,您可以在版本更改后运行作业。

您还可以将此参数与参数化触发器插件结合使用:

https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin

或者你可以使用SVN钩子实现这一点,如果版本已被更改触发Jenkins作业,可能有很多方法可以手动执行此操作...非常糟糕这最后一个选项!但它有效..

答案 1 :(得分:0)

让我们尝试以标准方式执行此操作&#34; user2310395&#34; ...

你如何释放神器? Maven发布插件还是其他什么?

我之所以这样问是因为我认为这是一个标准的工作流程&#34;应该如下:

  1. 使用maven发布插件将工件(1.00-SNAPSHOT)发布到(1.00)。现在你知道了,这就是要调用Maven的目标了,所以为什么不使用Jenkins的工作来完成这个?并且你有插件可以帮助你,如果你需要,例如:Jenkins Release插件
  2. 一旦发布作业,您将不再需要任何其他工作, 因为Maven发布插件本身会关注新的 将工件发布到Nexus标记库..
  3. 那么我缺少什么,为什么你不能遵循标准的工作流程?