Maven双亲POM

Maven双亲POM,maven,pom.xml,parent-pom,Maven,Pom.xml,Parent Pom,我是Maven的新手,最近安装了nexus。现在我想创建一个父POM,以便我公司内的所有项目都可以使用它。这是我的父母波姆 1.0.0 com.mycop 父pom-android 1.0.0-SNAPSHOT apk Android父POM nexus回购 http://10.10.10.230:8081/nexus/content/groups/public 真的 真的 总是 nexus回购 确认回购 http://10.10.10.230:8081/nexus/content/group

我是Maven的新手,最近安装了nexus。现在我想创建一个父POM,以便我公司内的所有项目都可以使用它。这是我的父母波姆


1.0.0
com.mycop
父pom-android
1.0.0-SNAPSHOT
apk
Android父POM
nexus回购
http://10.10.10.230:8081/nexus/content/groups/public
真的
真的
总是
nexus回购
确认回购
http://10.10.10.230:8081/nexus/content/groups/public/
真的
真的

现在,我应该把这个POM文件放在哪里,以便我的其他POM文件可以从中继承?

如果你把这个父POM放在一个名为android的文件夹中,并且项目将使用它在同一个文件夹中,就像这样

  • 安卓
  • pom.xml
  • android-project-1
    • pom.xml
然后,项目pom.xml可以使用父pom,方法是将其放在pom.xml的顶部:


父组
父工件
${version.number}
../
然后,您可以在将来像这样扩展此体系结构:

  • 流动的
    • pom.xml
    • 安卓
      • pom.xml
      • android-project-1
      • android-project-2
    • iPhone
      • pom.xml
      • iphone-project-1

这允许您为android项目定义公共配置,为iphone项目定义公共配置,为所有移动项目定义公共配置。依此类推

对于每个子pom,放置对父pom的引用


com.mycop
父pom-android
1.0.0-SNAPSHOT
相对/路径/到/父/pom

relativePath从子pom开始计算,您必须将项目部署到内部Maven存储库。为此,首先需要配置Maven repository服务器(我建议使用),然后将pom.xml和settings.xml指向服务器:


部署它之后,您可以将公司的所有项目指向使用该pom作为父pom。您可以使用相同的策略来创建内部项目依赖项。这在环境中运行得非常好。

包装类型应该是
pom
而不是
apk

我已经安装了nexus并将parent-pom.xml上传到nexus。如何将我的项目pom指向从nexus repo读取pom?您需要配置pom.xml和settings.xml以使用该存储库。这里有一些信息:听起来像是鸡或蛋的问题。父pom定义自定义存储库,但客户端必须从存储库中获取父pom。@不太可能,
settings.xml
文件是您配置的本地文件。如果父pom位于Nexus中,并且settings.xml配置为使用内部Nexus,则不需要相对路径。当版本控制中有多个项目存储在一起并且都使用父pom时,相对路径非常有用。然后父pom不在Nexus中,而是在项目组的版本控制中。