请参阅maven

时间:2015-08-20 04:48:02

标签: maven maven-3

假设有一个带有子项目B的根项目A.项目A和B具有相同的版本,假设1.并且有一个单独的根项目X与子项目Y.项目X和Y也有相同的版本,让我们说2。

我想:

  • 将项目A包括为项目X的父项目。
  • 将项目B包含为项目Y中的依赖项。

我就是这样做的:

pom.xml,项目X:

  <groupId>projectX</groupId>
  <artifactId>X</artifactId>
  <version>2</version>

  <parent> <!-- Project A defines a lot of dependencies that I don't want to redefine in project B -->
    <groupId>projectA</groupId>
    <artifactId>A</artifactId>
    <version>1</version>
  </parent>

  ...
  <properties>
    <!-- I'm duplicating version 1 here - 
         I have to define it above, in project's 
         version and define it again in all the places 
         where I refer to children projects of the 
         root project A -->
    <projectA.version>1</projectA.version> 
  </properties>
  ...
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>projectA</groupId>
        <artifactId>B</artifactId>
        <version>${projectA.version}</version>
      </dependency>
  ...

和pom.xml,项目Y:

  <parent>
    <groupId>projectX</groupId>
    <artifactId>X</artifactId>
    <version>2</version>
  </parent>

  <dependencies>
    <dependency>
      <groupId>projectA</groupId>
      <artifactId>B</artifactId>
    </dependency>
  ...

我觉得版本条目的重复(在上面给出的例子中是1)看起来不是很优雅,我试图使用像parent.version和project.parent.version这样的属性占位符但是没有一个对我有效 - 显然是父在.x的子项目中重写.version和project.parent.version,因此maven认为它们是2而不是1。

问题是,如果当前根项目使用的是另一个版本而不是父项目,是否有可能以某种方式引用父项目的版本。

我希望这个问题有道理,因为它看起来有点令人困惑,我不知道如何让它变得更简单。

我怀疑不可能通过设计做我想做的事,但我希望有重要经验的人可以证实这一点。

0 个答案:

没有答案