除非我在子诗词中添加repo,否则父诗词无法解决——难题



我想在项目pom中包含父类,包含发行管理和存储库。

当我mvn包子包时,maven无法解析父包,这是意料之中的。

我可以通过将我的内部nexus存储库添加到子节点来解析父节点。但这听起来就像下蛋的鸡——我在告诉孩子应该从父母那里知道的事情。我必须将这个repo添加到每个有父节点的子节点。

我怎样才能避免这种情况?

正如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>

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

听起来就像父类已经部署到内部nexus存储库中,所以一旦你添加了发行管理和存储库细节,它就会从那里获取它。

使其从本地副本中拾取。首先确保版本匹配。然后导航到父目录并运行mvn clean install。这将把父包推送到本地的maven仓库。

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

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

最新更新