3 回答
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
我找到了解決問題的方法。但我不確定如何解決它是否正確。我使用了插件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ù)上傳到人工制品中。這個(gè)插件從實(shí)例“project.getArtifacts()”讀取工件 ID,所以我直接更新它。所以我直接在 Maven 實(shí)例中更新了工件 ID。正如我所說,它不是 100% 正確,但在我的情況下它有幫助
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
這是不可能的。
內(nèi)部使用的屬性<artifactId>只能通過命令行設(shè)置。您沒有機(jī)會(huì)在 Maven 中操縱它們。我看到的唯一機(jī)會(huì)是更改命令行,以便在將參數(shù)發(fā)送到 Maven之前進(jìn)行替換。
TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以使用 buildhelper 插件執(zhí)行此操作,它有一個(gè)目標(biāo)regex-property,它可以根據(jù)初始值(您的 service_name 屬性)和一個(gè)正則表達(dá)式來設(shè)置屬性以替換為替換值。
來自使用頁(yè)面的示例(因?yàn)槭褂玫闹禌]有意義而改編):
<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>
添加回答
舉報(bào)
