2014-03-27 20 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中定义存储库。