亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 90 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號