【问题标题】:How to build the multiple projects with one command?如何用一个命令构建多个项目?
【发布时间】:2017-03-08 09:25:33
【问题描述】:

我有一个场景如下:

我们不使用模块,无法自动构建。

有四个项目一一依赖,就是简单的依赖比如

D Service:
<dependency>
     <groupId>c</groupId>   
     <artifactId>c</artifactId> 
</dependency> 
C service: 
<dependency>
    <groupId>B</groupId>    
    <artifactId>B</artifactId> 
</dependency> 
 ...

如果我们修改A,我们必须一个一个地mvn insall项目。 所以我的问题是“maven 是否提供了一次安装所有服务的命令?”

【问题讨论】:

  • 听起来你需要将它们放在一个单一的多模块构建中来解决问题......

标签: maven


【解决方案1】:

你需要一个父项目声明:

<modules>
    <module>B</module>
    <module>C</module>
    <module>D</module>
</modules>

并且在每个模块中,您都需要声明父类(不是强制性步骤,而是一个很好的做法,请参阅@Sean 的评论):

<parent>
    <artifactId>artifactIdA</artifactId>
    <groupId>groupIdA</groupId>
    <version>VersionInA</version>
</parent>

更多示例请参见guide。另请查看Maven the complete reference,了解有关 Maven 工作原理的更多信息。

已编辑:添加@Sean 对答案的评论

【讨论】:

  • 第二部分是可选的 Maven 反应器中的项目不需要有一个共同的父级。这只是一个好习惯。
  • 如果我错了,请纠正我,但是当子模块相互依赖时,需要进行父级声明,以便在构建父级时获得正确的构建顺序,还是我误解了什么?
  • 您构建反应器根,它可能是也可能不是父级。 Maven 足够聪明,可以按依赖树对项目进行排序,即使它们没有共同的父级。
  • 我知道模块,但现在项目不允许我重构结构。所以我需要使用命令来实现它
  • 你不能从命令行,见@khmarbaise的帖子:stackoverflow.com/a/4023629/4121573
猜你喜欢
  • 1970-01-01
  • 2010-09-25
  • 1970-01-01
  • 2019-10-03
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多