Xml Maven:重用代码而不使用父级
我有几个项目需要从存储在存储库中的不同父级继承Xml Maven:重用代码而不使用父级,xml,maven,import,nexus,Xml,Maven,Import,Nexus,我有几个项目需要从存储在存储库中的不同父级继承 child-1 -> parent-1 (in repo) child-2 -> parent-2 (in repo) ... 子pom.xml如下所示: <project> <parent> <groupId>com.company</groupId> <artifactId>parent-x</artifactId>
child-1 -> parent-1 (in repo)
child-2 -> parent-2 (in repo)
...
子pom.xml如下所示:
<project>
<parent>
<groupId>com.company</groupId>
<artifactId>parent-x</artifactId>
<relativePath/>
</parent>
<artifactId>child-x</artifactId>
<name>Child X</name>
<repositories>
<repository>
<!-- REPO WHERE PARENT IS LOCATED -->
</repository>
</repositories>
</project>
com公司
父-x
child-x
儿童X
由于所有父对象都位于同一个repo中,因此我希望在所有子pom中重用repositories部分,而不是复制粘贴它。有办法做到这一点吗
我不能对这些子项目使用公共父项目,因为它们都有一个不同的父项目,这在本地是不可用的
此外,将存储库添加到settings.xml也不是一个选项,因为此代码将被其他可能没有正确设置setting.xml的开发人员重用。这是不可能的。Maven中有三种机制可以将配置分配到可重用的位置:
- settings.xml-您排除了它,因为某些开发人员可能没有设置它
- 家长POM-由于您的设置,您也排除了这一点
- 从另一个POM“导入”-这在您的情况下不起作用。添加类型为“pom”且作用域为“import”的依赖项只会从目标pom导入托管依赖项,而不会从源存储库导入托管依赖项
我个人建议使用settings.xml并为开发人员编写一份文档——或者——如果您可以将父POM发布到Maven Central或某个内部公司存储库,您可以在那里使用它们,并且所有开发人员都可以访问这些存储库 在POM中配置存储库是一项重要任务。您应该使用存储库管理器,在那里发布顶级POM,并通过settings.xml控制对它的访问。我强烈建议您敦促其他开发人员将存储库添加到他们的settings.xml中。这将有助于他们完成工作——正如您所说,这看起来是一个可行的解决方案。不幸的是,这不是一个选项。在公司设置中,开发人员的settings.xml应该始终保持不变,这意味着设置了一个存储库管理器来处理所有这些。您可以添加访问存储库的凭据之类的内容。如果开发人员没有设置settings.xml,那就是他们的问题。将存储库放在pom中是非常糟糕的做法。顺便问一下:您在哪里部署您的工件?此外,从不同的父级继承听起来是错误的,因为插件版本等默认值应该在公司范围内定义……父级有一个共同的祖先,在那里管理插件版本。