maven:部署工件文件名

嗨:我发现,默认情况下部署maven更改文件名称以匹配版本+神器id。 例如

部署一个jar文件,其中artifact = A和version = V-0.1将生成一个名为AV-0.1.jar的jar文件。

有没有办法在部署中更改jar文件的默认名称,以便它不会连接这些区域或明确指定最终部署的jar名称?


复杂的答案是:是的

这有点棘手,你需要小心,因为POM不会被重写。 所以只有maven远程仓库(artifactory或nexus)才会把它放到正确的文件夹结构中。

如果您在maven deploy目标中覆盖部署文件目标,则可以覆盖这些参数:http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html

一个总是将4.5.1版本发布到nexus的例子看起来像这样:

        <plugin>
            <artifactId>maven-deploy-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>deploy-file</goal>
                    </goals>
                    <phase>deploy</phase>
                    <configuration>
                        <repositoryId>nexus-site</repositoryId>
                        <url>http://nexus.some.where/nexus-2/content/repositories/releases</url>
                        <file>${build.directory}/${project.build.finalName}.${project.packaging}</file>
                        <generatePom>false</generatePom>
                        <pomFile>pom.xml</pomFile>
                        <version>4.5.1</version>
                    </configuration>
                </execution>
            </executions>
        </plugin>

(并且在有人问道之前,做这种事情的一个理由是让构建更加CI友好。在CI中,一切都只是构建编号,并不是真正的“构建版本”,每一次检查都会产生一个生产就绪的工件。所以用${BUILD_NUMBER}替换4.5.1会在你的工件存储中留下很多很多的版本......)


简单的答案是:没有。

它背后的问题是,如果您要更改命名模式,则无法在存储库中找到工件。 这就是具有固定命名模式的原因。


mvn deploy:deploy-file -DartifactId = AAA -Dversion = VVV -Dpackaging = jar

上面的命令将把文件放在下面的结构中。

AAA
-VVV
--AAA_VVV.jar

如果您只是想在创建文件的名称与连续推送artifactory之间有所不同,可以使用-Dpackaging参数。 即。 将该值设置为当前时间戳

mvn deploy:deploy-file -DartifactId = AAA -Dversion = VVV -Dpackaging = 2017_01_31_01_37.jar

AAA
-VVV
--AAA_VVV.jar
--AAA_VVV2017_01_31_01_37.jar
链接地址: http://www.djcxy.com/p/14041.html

上一篇: maven : deploy artifact file name

下一篇: How to reduce heap usage impact from VisualVM?