【发布时间】:2016-10-15 00:44:11
【问题描述】:
我有一个简单的 Maven 项目,它必须生成工件,例如一些神器 我在 Jenkins 也有一份工作,可以将简单的 maven 部署到我们的内部 Nexus 存储库。这是 Jenkins 在作业的“Maven 目标和选项”字段中设置的值:
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>
最终目标是尽快在 Nexus 上部署最新版本的some-artifact。
是否有任何配置或 Jenkins 插件允许此类检测和作业触发?
【问题讨论】:
-
为什么调用
source:jar集成到您的pom 中并只执行mvn clean deploy...您可以将jenkins 配置为在SCM 更改时触发...这是处理此类事情的默认方式.. -
source:jar没那么重要,关键是触发作业。如果我在 SCM 的每次更改时触发它,部署目标将失败,因为版本与前一个相同(失败实际上是可以的,但目前我们没有一些“聪明”的版本管理)。
标签: maven jenkins deployment version nexus