我在主模块中配置了“ finalName”和build-helper-maven-plugin:
<build>
<finalName>${project.artifactId}_${build.time}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>timestamp-property</id>
<goals>
<goal>timestamp-property</goal>
</goals>
<configuration>
<name>build.time</name>
<pattern>yyyy-MM-dd.HHmm</pattern>
<locale>fr_FR</locale>
<timeZone>Europe/Paris</timeZone>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
当我在聚合器上使用“ mvn软件包”时,它工作正常,但是如果我执行“ mvn部署”,则将被忽略:工件使用类似于version_artifactId_maven-timestamp(使用UTC的maven-timestamp)的模式。当我拥有的唯一版本是“ 1.0.0-CD”时,在上传的工件中使用的“版本”也是“ 1.0.0-SNAPSHOT”。
我该如何解决?
P.S。 :所有这些测试都是本地的,尚未使用某些CI服务器。
P.P.S。 :我只能说只有上传到Artifactory的工件才有 错误的名称,目标目录中的工件就可以了。
答案 0 :(得分:0)
到目前为止没有答案,所以这是我解决此问题的方法。
我正在使用Maven提供的可能性(没有来自Maven v3.2.1的任何警告)在外部设置pom的版本:Allow continuous delivery friendly versions。
因此,我用<version>1.0.0-SNAPSHOT</version>
替换了聚合器,父级,模块(包括依赖项)中的每个<version>${revision}</version>
项。
要在发布版本中设置时区时间戳,请使用Jenkins的“ BUILD TIMESTAMP插件”。
因此,jenkins中的maven部署命令行位于“构建>目标和选项”中:deploy scm:tag -Drevision=1.0.0_$BUILD_TIMESTAMP
@khmarbaise没有冒犯,大部分功劳归于Maven Release Plugin: Dead and Buried