首页 文章

Jenkins - 检测工件版本更改

提问于
浏览
0

我有一个简单的Maven项目,必须产生伪像,例如some-artifact我也在Jenkins工作,将简单的maven部署到我们的内部Nexus存储库 . 这是Jenkins在"Maven goals and options"字段中为作业设置的值:

clean source:jar deploy

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

<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>

现在,我想要实现的是检测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.1</version>
</project>

The final goal is to have last version of some-artifact deployed on Nexus as soon as possible.

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

2 回答

  • 0

    我不知道它是否可以帮助,有几个插件集成了maven和Jenkins,所以也许其中一个将有一个构建int功能来完成你需要的...

    顺便说一下,如果没有特定的插件,有很多方法..你可以使用$ 变量,它是随着

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

    然后将它与前一个版本,先前版本或历史记录等进行比较......这样,只要版本已更改,您就可以运行该作业 .

    您还可以将此参数与 parameterized trigger plugin 结合使用:

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

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

  • 0

    让我们尝试以标准方式“user2310395”执行此操作...

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

    我问这个是因为我认为标准的“工作流程”应该如下所示:

    • 使用maven发布插件将一个工件(1.00-SNAPSHOT)发布到(1.00) . 现在你知道了,这就是要调用Maven的目标,那么为什么不使用Jenkins工作来完成这个呢?并且你有插件可以帮助你,以防万一你需要,例如:Jenkins Release插件

    • 一旦Release作业运行,您将不需要任何其他工作,因为Maven发布插件本身会将新版本工件关注到Nexus标记存储库中 .

    那么我缺少什么,为什么你不能只遵循标准的工作流程?

相关问题