1

目前我有3个maven项目:

     ProjectCommon
    _______|________ 
    |              | 
ProjectA        ProjectB

结果这 3 pom.xml

#ProjectCommon/pom.xml

<groupId>my.package</groupId>
<version>1.0</version>

#ProjectB/pom.xml

<dependency>
   <groupId>my.package</groupId>
   <artifactId>ProjectCommon</artifactId>
   <version>1.0</version>
</dependency>

#ProjectB/pom.xml

<dependency>
   <groupId>my.package</groupId>
   <artifactId>ProjectCommon</artifactId>
   <version>1.0</version>
</dependency>

当我需要打包我的 2 个应用程序(ProjectAProjectB)并且总是需要运行以下命令时:

cd ProjectCommon && mvn install
cd ProjectA && mvn package
cd ProjectB && mvn package

还有其他方法可以配置我的项目(比如使用Maven Modules)来做我现在拥有的,而不是总是需要installProjectCommon的本地存储库?

4

1 回答 1

-1

我建议创建这样的结构:

+- root (pom.xml)
    +--- common (pom.xml)
    +--- projectA (pom.xml)
    +--- projectB (pom.xml)

根目录包含两个模块条目,如下所示:

<modules>
  <module>projectA</module>
  <module>projectB</module>
  <module>common</module>
</modules>

每个子模块都应该包含这样的父条目(公共模块的示例):

<parent>
  <groupId>my.package</groupId>
  <artifactId>parent</artifactId>
  <version>1.0-SNAPSHOT</version>
</parent>

<artifactId>common</artifactId>

此外,在 projectA/projectB 中,您可以简单地定义依赖关系common,现在您可以使用根目录中的单个命令构建所有模块,包括您的项目:

mvn clean package

或者如果您想运行集成测试:

mvn clean verify

没有必要做install...

值得一提的是,此设置您必须对所有常见的、projectA、projectB 和 root 使用单个版本

于 2018-05-10T11:33:39.220 回答