代码之家  ›  专栏  ›  技术社区  ›  Tristan

为什么maven在使用“deploy”时忽略finalName和“build helper maven plugin”?

  •  1
  • Tristan  · 技术社区  · 6 年前

    我在主模块中配置了“finalName”和build helper maven插件,如下所示:

    <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 package”时,它工作得很好,但是如果我使用“mvn deploy”,它就会被忽略:工件使用类似于version_artifactId_maven-timestamp(maven timestamp using UTC)的模式。此外,上传的工件中使用的“版本”是“1.0.0-SNAPSHOT”,而我拥有的唯一版本是父版本和“1.0.0-CD”。

    我该怎么解决?

    备注:所有这些测试都是本地的,还没有使用某个CI服务器。

    P.P.S.:我不得不说,只有上传到Artifactory的工件才有 名字不对,我的目标目录中的工件没问题。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Tristan    6 年前

    到目前为止还没有答案,我是如何解决这个问题的。

    我使用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命令行变成了“Build>Goals and options”: deploy scm:tag -Drevision=1.0.0_$BUILD_TIMESTAMP

    无意冒犯 @khmarbaise ,大部分学分: Maven Release Plugin: Dead and Buried