2011-12-14 91 views
0

我有一個庫,我最近「mavenized」並將其放入本地git存儲庫。
爲了鎖定一些插件版本,我創建了一個簡單的父pom,它通過pluginManagement(父pom文件不是簽入到任何SCM存儲庫中)來定義插件版本。我在我的庫文件中指定了父pom文件:maven發佈:執行和父pom

<parent> 
    <groupId>org.my.company</groupId> 
    <artifactId>superpom</artifactId> 
    <version>1</version> 
</parent> 

我使用默認的目錄結構。 當我嘗試使用發佈插件執行發佈時,遇到問題。然而

mvn release:prepare運行正常,當我運行mvn release:perform行家檢查了相應的標籤,從我的本地git倉庫到目標/結帳文件夾,並嘗試運行部署目標。
但是,構建失敗,並顯示錯誤消息,它無法找到我的庫pom文件中定義的父pom文件。
我認爲這與maven嘗試在目標文件夾中找到父文件夾並且在那裏不可用這一事實有關。
有沒有簡單的方法如何解決這個問題?

更新
我有應該分享共同的公司父POM文件以指定插件版本的多個不相關的GWT庫。
父pom僅用於定義某些默認版本,並且不包含任何模塊定義,因爲所有GWT庫都不相關。
GWT的庫是非常簡單的,並沒有真正的依賴關係,從默認的除了任何其他庫(GWT,JUnit的)

UPDATE2: 我通過運行安裝superpom到我的本地庫解決了這個問題mvn install在我的superpom的文件夾中。

回答

0

你所做的第一個失敗並不是對你定義pluginManagement區域的父pom進行版本化。這是你必須做的第一步,把你喜歡使用父母的pom.xml。其次,你必須將關於VCS的信息放入該pom的scm區域。清理完所有內容後,您必須執行mvn發行版:準備發行版:執行父級發行版。之後,您可以將其用作其他項目的父項。此外,你應該在你的父pom中定義distributionManagement區域。

+0

父pom是否必須與我的庫在同一個VCS中? 我有幾個不相關的庫應該使用這個作爲父(公司)POM和他們每個人都在一個單獨的github存儲庫。我是否必須將父pom放入每個存儲庫? 對於圖書館的發佈,我是否只需要在父pom上調用發佈插件,或者我可以在圖書館的pom上進行發佈嗎? – 2011-12-14 15:00:01