Maven 父pom不可解决,除非我将回购添加到子pom-难题

Maven 父pom不可解决,除非我将回购添加到子pom-难题,maven,nexus,Maven,Nexus,我想在项目pom中包含一个父级,包含分发管理和存储库。正如人们所料 当我将mvn打包到子级时,maven无法解析父pom,这并不奇怪 我可以通过将我的内部nexus存储库添加到子pom来解析父级。但这听起来像是鸡蛋下蛋——我在告诉孩子一些应该从父母那里知道的事情。我必须将此回购协议添加到每个有父母的儿童pom中 如何避免这种情况?听起来好像父级已部署到您的内部nexus存储库中,因此在添加分发管理和存储库详细信息后,它将从那里获取它 让它从你的本地副本中获取。首先确保版本匹配。然后导航到父级并运

我想在项目pom中包含一个父级,包含分发管理和存储库。正如人们所料

当我将mvn打包到子级时,maven无法解析父pom,这并不奇怪

我可以通过将我的内部nexus存储库添加到子pom来解析父级。但这听起来像是鸡蛋下蛋——我在告诉孩子一些应该从父母那里知道的事情。我必须将此回购协议添加到每个有父母的儿童pom中


如何避免这种情况?

听起来好像父级已部署到您的内部nexus存储库中,因此在添加分发管理和存储库详细信息后,它将从那里获取它

让它从你的本地副本中获取。首先确保版本匹配。然后导航到父级并运行mvn clean install。这会将父pom推送到本地maven回购


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

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

正如khmarbaise所写,您需要在settings.xml中的概要文件中定义存储库(这似乎有些奇怪,但实际上是唯一可行的方法):


回购协议
我的本地回购协议
项目服务器快照
http://my-server/nexus/content/groups/public
真的
真的
失败
每日的
回购协议

根据您的实际配置,您还可以包括镜像设置,并可以调用本地nexus
central

顶部答案,谢谢。第一次工作。我以前就有这个想法,但没法让它发挥作用。
<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>