Maven:如果项目正在发布,则需要一种方法来更改 属性 或 URL 值
Maven: Need a way to change a property or URL value if the project is being released or not
我们正在使用 JDeb maven 插件为我们的单一 jar 项目构建 debian 包。
我们有两个 APT 存储库,一个用于预发布版本,一个用于发布版本。
我们正在使用 Wagon 插件上传工件,但我们不知道如何只将发布发送到发布存储库,并将快照发送到预发布存储库。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<executions>
<execution>
<id>upload-to-nexus</id>
<phase>deploy</phase>
<goals>
<goal>upload-single</goal>
</goals>
<configuration>
<serverId>xxx-all</serverId>
<fromFile>${project.build.directory}/${jdeb.name}</fromFile>
<url>https://xxx.xxx.xxx/repository/xxx-apt-pre</url>
</configuration>
</execution>
</executions>
</plugin>
我们需要在发布插件运行时将上面的xxx-apt-pre
更改为xxx-apt-dist
。对于我的生活,我想不出办法做到这一点。
我最初尝试使用 build-helper 插件对短语 SNAPSHOT
的 ${project.build.finalName}
进行正则表达式,但它不会覆盖现有的 属性.
欢迎提出任何想法。
好吧,这个解决方案并不完美,但正如我们在中西部所说的那样:
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<id>add-dynamic-properties</id>
<phase>package</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
<![CDATA[
if (project.version.contains('SNAPSHOT')) {
project.properties['aptRepoName'] = 'xxx-apt-pre'
} else {
project.properties['aptRepoName'] = 'xxx-apt-dist'
}
]]>
</source>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<executions>
<execution>
<id>upload-to-nexus</id>
<phase>deploy</phase>
<goals>
<goal>upload-single</goal>
</goals>
<configuration>
<serverId>xxx-all</serverId>
<fromFile>${project.build.directory}/${jdeb.name}</fromFile>
<url>https://xxx.xxx.xxx/repository/${aptRepoName}</url>
</configuration>
</execution>
</executions>
</plugin>
我希望这对某人有所帮助,或者有一天有人会以更好的方式发帖。
我们正在使用 JDeb maven 插件为我们的单一 jar 项目构建 debian 包。
我们有两个 APT 存储库,一个用于预发布版本,一个用于发布版本。
我们正在使用 Wagon 插件上传工件,但我们不知道如何只将发布发送到发布存储库,并将快照发送到预发布存储库。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<executions>
<execution>
<id>upload-to-nexus</id>
<phase>deploy</phase>
<goals>
<goal>upload-single</goal>
</goals>
<configuration>
<serverId>xxx-all</serverId>
<fromFile>${project.build.directory}/${jdeb.name}</fromFile>
<url>https://xxx.xxx.xxx/repository/xxx-apt-pre</url>
</configuration>
</execution>
</executions>
</plugin>
我们需要在发布插件运行时将上面的xxx-apt-pre
更改为xxx-apt-dist
。对于我的生活,我想不出办法做到这一点。
我最初尝试使用 build-helper 插件对短语 SNAPSHOT
的 ${project.build.finalName}
进行正则表达式,但它不会覆盖现有的 属性.
欢迎提出任何想法。
好吧,这个解决方案并不完美,但正如我们在中西部所说的那样:
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<id>add-dynamic-properties</id>
<phase>package</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
<![CDATA[
if (project.version.contains('SNAPSHOT')) {
project.properties['aptRepoName'] = 'xxx-apt-pre'
} else {
project.properties['aptRepoName'] = 'xxx-apt-dist'
}
]]>
</source>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<executions>
<execution>
<id>upload-to-nexus</id>
<phase>deploy</phase>
<goals>
<goal>upload-single</goal>
</goals>
<configuration>
<serverId>xxx-all</serverId>
<fromFile>${project.build.directory}/${jdeb.name}</fromFile>
<url>https://xxx.xxx.xxx/repository/${aptRepoName}</url>
</configuration>
</execution>
</executions>
</plugin>
我希望这对某人有所帮助,或者有一天有人会以更好的方式发帖。