1

我有两个项目,“appA”和“appB”,每个项目都依赖于第三个项目,“common”。我正在将它们从 ant 移到 maven 的过程中,但我很难找出在 maven 中做到这一点的最佳方法。我的文件夹结构如下所示:

root
+ common  
+ appA  
+ appB  

我已经能够将父 pom.xml 添加到根目录中,并且将 common、appA 和 appB 作为该父项目的模块来构建 appA 和 appB,但这不是我想要的,根 pom.xml 是不合适,因为 appA 和 appB 是完全不相关的项目。

我希望 appA 和 appB 是独立的 maven 项目,它们都依赖于第三个公共项目,并在必要时构建它,这样我就可以进入 appA 或 appB 文件夹并输入“mvn package”来构建 appA + common或 appB + common,分别。这就是我在 Ant 中设置它的方式,但在 maven 中可能没有适当的并行。非常感谢任何朝着正确方向的帮助或轻推:)

4

1 回答 1

0

(...) 但这不是我想要的,根 pom.xml 不合适,因为 appA 和 appB 是完全不相关的项目。

然后不要这样做,如果您不想使用聚合,请不要使用聚合,只需commonappAPOM 和appB. 像这样的东西:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>foo</groupId>
  <artifactId>appA</artifactId>
  <packaging>jar</packaging>
  <version>X-SNAPSHOT</version>
  ...
  <dependencies>
    <dependency>
      <groupId>bar</groupId><!-- at your discretion -->
      <artifactId>common</artifactId>
      <version>Y.Z-SNAPSHOT</version>
    </dependency>
    ...
  </dependencies>
  ...
</project>

依赖关系是通过本地存储库解决的,因此您必须首先mvn install访问common项目(并且在进行任何更改以使其“可见”之后)。

在开发过程中,一种常见的做法是在 IDE 中导入依赖项目并将它们配置为依赖于工作空间的项目(相对于二进制依赖项)。这节省了install使更改可见的步骤。大多数 IDE 都支持这种方法。

于 2010-07-20T20:56:40.813 回答