我的主要模块依赖于其他模块,所以当我编译主模块时,它们应该被编译在一起.
问题是如何将这些模块作为依赖关系添加到主模块?
我知道如果我有一个自定义的lib,我想用maven,让我们来说一个实用程序项目,我必须编译该项目的jar,做一个mvn install:install-file在它上安装在本地存储库和然后将其添加到pom.xml.
我必须使用我所有的模块,并添加依赖关系到我的主模块上的pom.xml吗?因为如果这样做,那么在更改其他模块上的代码时会做很多工作.
使用最好的做法是避免将模块编译/安装到本地存储库的麻烦?
解决方法
与您的maven项目中添加任何其他依赖关系相同.通过将组ID,工件id和版本添加到< dependency>元件
我必须使用我所有的模块,并添加依赖关系到我的主模块上的pom.xml吗?
如果您的主模块依赖于某个模块A,那么只有主模块的pom应该包含对模块A的依赖性声明.您对模块的所有依赖项执行此操作.
我不知道你在改变其他模块上的代码时所做的很多工作是什么意思. Maven与代码更改无关,它只是在给定的时刻构建项目,而不管它们是什么样的…
使用最好的做法是避免将模块编译/安装到本地存储库的麻烦?
您调用mvn install的任何项目都将构建,并将其复制到本地存储库.这就是你所需要做的,让罐子进入回购.这也将把所有依赖的罐子(如果有的话)放入当地的回收站.
关于多模块项目的最佳实践:
如果您的父项目(其中包含模块的项目)具有< modules>部分列出了应用程序的模块,模块位于父项目的子目录中,然后您只需安装(或任何您想要做的)父项目,并将导致所有模块按声明定义的顺序构建它们之间的依赖关系.这意味着如果您的主模块依赖于模块A,则模块A将在主模块之前构建.这样,您可以使用一个命令构建和安装所有模块.另一方面,这种方法使得在某些情况下不需要的模块之间形成更紧密的耦合,所以它取决于用例是否是一个好的方法.