我有几个独立项目(他们没有相同的父项),但他们使用相同的库集。例如
所有这些项目都使用Spring,Postgres,Hibrenate和tomcat。我想要做的是沿着以下几行介绍一个命名的dependecies集合的概念:
我希望能够说项目A依赖于TSHP 1.0,项目B依赖于TSHP 2.0 ...等我在这种设置中看到的值是
这种类型的设置可以用maven3完成吗?如果是这样如何?
更新:我在父pom设置中看到的问题是POM只能有一个父级,但我可能有几个标准的命名类路径,例如:
答案 0 :(得分:2)
为“平台”创建一个新项目,即您想要一起使用的依赖项组。其包装类型应为:pom
。
<project>
<groupId>…</groupId>
<artifactId>tshp-platform</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<dependencies>
<!-- Dependencies for TSHP 1.0 -->
</dependencies>
…
发布1.0的pom。然后更新TSHP 2.0的版本和依赖项。然后释放它。
现在你的项目可以简单地声明对pom项目的依赖,并且会过渡地获取平台。
但请注意,明确声明每个项目直接依赖的工件通常被认为是一种好习惯。但是,这不是必需的。
答案 1 :(得分:1)
我认为你所说的是“公司POM”的概念 definition given by Sonatype是:
企业Pom是一个父Pom,位于公司的继承结构的顶部。这是集中管理某些配置的最佳实践,例如Enforcer规则配置,默认插件版本等。这也可称为“组织Pom”。术语“Super Pom”经常被错误地应用于Corporate Poms。
另见:
父母pom只是一个pom,其他pom通过一个部分继承。从父母那里继承的Poms有时被称为“儿童”或“儿童poms”。