为什么在使用“部署”时maven忽略了finalName和“ build-helper-maven-plugin”?

时间:2018-07-31 15:29:29

标签: xml maven maven-3 artifactory

我在主模块中配置了“ 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的工件才有 错误的名称,目标目录中的工件就可以了。

1 个答案:

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