我應該針對多個目標平臺上建立一個神器:同步工件版本與Maven釋放過程
- Linux x86的
- 的Windows 86
- ARM11
不幸的是,由於由於缺少交叉編譯器,不可能一次創建所有版本的工件。
使用換句話說,我們的目標是在存儲庫這樣的事情
- artifact-1.0.0-linux.zip
- artifact-1.0.0-windows.zip
- 神器-1.0.0-arm11.zip
- artifact-1.0.1-linux.zip
- artifact-1.0.1-windows.zip
- artifact-1.0.1-arm11.zip
- ...
請注意,版本是同步的。如何做到這一點?
問題在於發佈過程在每次構建之後都會升級pom.xml的版本。因此,通過各種平臺上相繼建立我能夠實現具有
- artifact-1.0.0-linux.zip
- artifact-1.0.1-windows.zip
- artifact-1.0.2-arm11.zip
- artifact-1.0.3-linux.zip
- artifact-1.0.4-windows.zip
- artifact-1.0.5-arm11.zip
- ...
但這不是我正在尋找的。
我可以在Linux上
MVN發佈
運行:準備發佈:執行-DpushChanges =假
(設置爲false釋放不會增加版本號pushChanges在SCM中)
然後在Windows上運行
MVN發佈:準備釋放:執行
(這將增加版本號)
但隨後負責觸發在各種平臺上的發佈過程中正確的順序在於我。有沒有一種方法可以幫助我呢?
你有什麼建議嗎?
感謝
PS。請注意,這不是如何組織到模塊中的問題。它關於如何在多個平臺上同步單個工件的發佈過程。
但我的觀點是,當你在Linux上,你不能創建一個Windows的二進制文件(由於一些工具鏈的限制)。因此,在Linux上運行時的構建過程無法創建Windows二進制文件。反之亦然。 因此,您無法一次爲所有平臺創建所有二進制文件。 --- 這不是一個關於如何組織成模塊的問題。它關於如何在多個平臺上同步單個工件的發佈過程。 – 2012-04-05 13:30:50
好的,所以我很擔心Maven不會像你想的那樣自動地做這件事,除非你想(並且有一些時間)創建自己的發佈插件。正如你所提到的,你可以在不碰撞某個版本的情況下做所有的重新調整,並最終在全球範圍內將其燒燬,但這是你必須記住的。您還可以放棄通用版本控制(從父級繼承)並在所有模塊的POM中輸入字面版本。但是,這一次,您必須控制此過程,並確保所有模塊隨版本一起發佈,並且每個模塊都會發布一次。我真的無法看到100%的自動方式。 – 2012-04-05 14:28:01
我總是很短的時間:)無論如何,感謝您的幫助。 – 2012-04-05 16:52:08