2014-03-27 52 views
2

我想包括在項目POM家長,含配送管理和存儲庫。正如人們所期望的。父POM不能解決的,除非我添加回購兒童POM - 難題

當我MVN打包子,Maven是無法解決父POM,勿庸置疑。

我可以把它加入我的內部關係庫孩子POM解決父。但這聽起來像雞蛋產蛋雞 - 我告訴孩子從父母那裏應該知道的東西。我將不得不添加這個回購給每個有父母的孩子。

我該如何避免這種情況?

回答

3

由於khmarbaise寫道,你需要在你的settings.xml配置文件來定義庫(這似乎有點不可思議,但實際上是唯一可行的辦法):根據您的實際配置

<profiles> 
    <profile> 
     <id>repos</id> 

     <repositories> 
      <repository> 
       <id>my-local-repo</id> 
       <name>Projektserver Snapshots</name> 
       <url>http://my-server/nexus/content/groups/public</url> 
       <releases> 
        <enabled>true</enabled> 
       </releases> 
       <snapshots> 
        <enabled>true</enabled> 
        <checksumPolicy>fail</checksumPolicy> 
        <updatePolicy>daily</updatePolicy> 
       </snapshots> 
      </repository> 
     </repositories> 
    </profile> 
</profiles> 

<activeProfiles> 
    <activeProfile>repos</activeProfile> 
</activeProfiles> 

,您還可以包括鏡像設置,並可能會調用您的本地連接central

+0

頂部答覆,謝謝。第一次工作。我之前曾想到這一點,但無法實現它的工作。 – Jepper

0

聽起來就像是父母已經部署到你的內部關係倉庫,所以它從那裏將它拾起,一旦你在配送管理和存儲庫的細節補充。

爲了讓把它撿起來,從你的本地副本。首先確保版本匹配。然後導航到父級並運行mvn clean install。這會將父Pom推送到您當地的Maven回購站。

您也可以通過確保您已將releativePath元素添加到子pom中的父級詳細信息中來避免這種情況,您可能不需要手動構建父級,但是我不是100%確定並且未測試該元素。

0

應該在您的pom中定義的唯一東西是distributionManagement應該在settings.xml中定義存儲庫。