3 回答

TA貢獻1799條經(jīng)驗 獲得超8個贊
我找到了解決問題的方法。但我不確定如何解決它是否正確。我使用了插件gmaven-plugin
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<phase>pre-clean</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
project.getModel().setArtifactId(project.properties["service_name"].replaceAll('_', '-'))
project.getArtifact().setArtifactId(project.properties["service_name"].replaceAll('_', '-'))
</source>
</configuration>
</execution>
</executions>
</plugin>
之后,我使用 maven-assembly 插件將數(shù)據(jù)上傳到人工制品中。這個插件從實例“project.getArtifacts()”讀取工件 ID,所以我直接更新它。所以我直接在 Maven 實例中更新了工件 ID。正如我所說,它不是 100% 正確,但在我的情況下它有幫助

TA貢獻1772條經(jīng)驗 獲得超5個贊
這是不可能的。
內(nèi)部使用的屬性<artifactId>
只能通過命令行設(shè)置。您沒有機會在 Maven 中操縱它們。我看到的唯一機會是更改命令行,以便在將參數(shù)發(fā)送到 Maven之前進行替換。

TA貢獻1811條經(jīng)驗 獲得超4個贊
您可以使用 buildhelper 插件執(zhí)行此操作,它有一個目標regex-property,它可以根據(jù)初始值(您的 service_name 屬性)和一個正則表達式來設(shè)置屬性以替換為替換值。
來自使用頁面的示例(因為使用的值沒有意義而改編):
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>regex-property</id>
<goals>
<goal>regex-property</goal>
</goals>
<configuration>
<name>human.version</name>
<value>${project.version}</value>
<regex>-SNAPSHOT</regex>
<replacement> pre-release development version</replacement>
<failIfNoMatch>false</failIfNoMatch>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
</project>
添加回答
舉報