为了账号安全,请及时绑定邮箱和手机立即绑定

Maven:如果项目正在发布,则需要一种方法来更改属性或 URL 值

Maven:如果项目正在发布,则需要一种方法来更改属性或 URL 值

慕尼黑8549860 2022-12-21 11:54:02
我们正在使用 JDeb maven 插件来构建我们的单罐项目的 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 插件${project.build.finalName}为短语正则表达式SNAPSHOT,但它不会覆盖现有属性。欢迎任何想法。
查看完整描述

1 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

好吧,解决方案并不完美,但正如我们在中西部所说的那样完成了:


<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>

我希望这可以帮助某人或有一天有人发布更好的方式。


查看完整回答
反对 回复 2022-12-21
  • 1 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号