父母pom无法解决,除非我添加回购儿童pom - 难题

时间:2014-03-27 11:24:49

标签: maven nexus

我想在项目pom中包含父项,其中包含分发管理和存储库。正如人们所期望的那样。

当我给孩子打包时,maven无法解决父母pom,不出所料。

我可以通过将内部nexus存储库添加到子pom来解决父级问题。但这听起来像鸡蛋放鸡 - 我告诉孩子它应该从父母那里知道。我必须将这个回购添加到每个有父母的孩子pom。

我该如何避免这种情况?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

听起来已将父级部署到您的内部nexus存储库,因此一旦您添加了分发管理和存储库详细信息,它就会从那里获取它。

使其从本地副本中提取。首先确保版本匹配。然后导航到父级并运行mvn clean install。这会将父pom推送到您当地的maven仓库。

您也可以通过确保将releativePath元素添加到子pom中的父详细信息来解决此问题,您可能不需要手动构建父级,但我不是100%肯定并且没有测试过。

答案 2 :(得分:0)

应该在pom中定义的唯一内容是distributionManagement,应该在settings.xml中定义存储库。