2011-12-22 49 views
0

我有一個多模塊項目,主要是開源的,但有一個模塊(編譯器)是專有的,所以它的src/main/java文件夾在發佈前需要刪除。專有模塊構建了一個混淆的jar,供其他模塊使用,這些模塊需要從原始jar中調用編譯器來構建發佈中的所有其他模塊。其中一個是用於編譯系統其餘部分的mojo。因此,在刪除專有資源後,我需要結束工作mojo,以便用戶可以使用僅使用二進制混淆的編譯器jar來編譯系統的非專有部分。從專有模塊中移除專有源的Maven POM

調用專有模塊「編譯器」和它產生的混淆jar「compiler.jar」。我想我需要另一個模塊「compiler-bin」,並將「compiler.jar」作爲依賴項,它將compiler.jar以新名稱「compiler-bin.jar」添加到存儲庫,然後更改所有內容(mojo,等等)依賴於compiler-bin.jar而不是compiler.jar。然後通過克隆整個樹來分發,用手去除編譯器源模塊,手工調整poms以修復破損,並...;它會變得相當不錯。

我希望有更多的東西能夠自動導出原始樹的新副本(包括所有的源代碼)來生成一個可以在沒有進一步手動調整的情況下構建的發佈樹(減去專有源)。

回答

0

發現Maven的組裝插件絕望複雜的,然後找到了一個更好的辦法。

我只是基於我們釋放的樹幹創建一個svn分支,然後刪除分支中不需要的文件夾,將它們保留在樹幹中。然後測試,調整需要調整的任何東西(例如刪除父母鏈接​​中的子節點)。然後爲該分支分配一個maven版本號(避免maven版本插件太脆弱和複雜)與mvn版本:set -DnewVersion = whatever。提交分支,上傳構建結果,你就完成了。