我想在项目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中定义。