簡體   English   中英

Maven發布插件:連續執行一些部署

[英]Maven release plugin: perform a few deploy in a row

我們需要將相同的工件部署到兩個(或更多)nexus存儲庫中。 為此,我們使用兩個具有不同distributionManagement部分的獨立配置文件,如下所示:

<profile>
    <id>deploy-nexus1</id>
    <distributionManagement>
        <repository>
            <id>releases1</id>           
            <url>http://repositories/releases1</url>
        </repository>
        <snapshotRepository>
            <id>snapshots1</id>      
            <url>http://repositories/snapshots1</url>
        </snapshotRepository>
    </distributionManagement>
</profile>
<profile>
    <id>deploy-nexus2</id>
    <distributionManagement>
        <repository>
            <id>releases2</id>           
            <url>http://repositories/releases2</url>
        </repository>
        <snapshotRepository>
            <id>snapshots2</id>      
            <url>http://repositories/snapshots2</url>
        </snapshotRepository>
    </distributionManagement>
</profile>

期望的結果:具有相同的artifact:1.0.0 releases1releases2 artifact:1.0.0 但運行命令后:

mvn clean release:prepare -U
mvn clean release:perform -U -P deploy-nexus1
mvn clean release:perform -U -P deploy-nexus2

部署到releases1存儲庫成功,但部署到releases2返回:

沒有提供SCM URL來執行發布

根據插件文檔 ,在每個release:perform之前release:perform我們需要運行release:prepare或提供自定義url以在repo中標記。

我們怎樣才能執行一個工件版本的兩個nexus部署? 是否可以在release:perform命令中添加額外的部署步驟?

提前致謝。

從您參考的文檔:

我們最后可以看到:

發布完成后,將從結帳中刪除release.properties和其他發布文件。

在我們閱讀之前:

mvn release:執行

這依賴於先前版本准備中存在的release.properties。 如果不是這種情況,則需要為目標指定URL和可選標記以執行發布。 例如:

mvn org.apache.maven.plugins:maven-release-plugin:2.5.3:perform -DconnectionUrl = scm:svn: https ://svn.mycompany.com/repos/path/to/myproject/tags/myproject-1.2 0.3

並且您的錯誤是No SCM URL was provide to perform the release from ,所以我認為您應該精確發布組件的標記,因為release.properties在第一個release:perform之后不再存在release:perform 你可以這樣做:

mvn clean release:perform -U -P deploy-nexus2 -DconnectionUrl=scm:svn:urlOfTaggedProject

另一個避免在標記URL末尾輸入的解決方案是在第一個release:perform之前release:perform release.properties的副本release:perform在當前文件夾中的某處release:perform 例如,通過不同地復制和重命名,在第一次執行后,您可以將其重命名為release.properties ,以便在第二次release:perform期間重用它release:perform 使用非常簡單的腳本,它可以自動化。
我不知道它是否可行,因為我從未有過這個要求。 也許,你會有其他副作用,這些只是猜測。
但不要猶豫,做一個反饋:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM