[英]In a maven multi-module project, how to access the spring beans from one module to another
[英]Multi-module IntelliJ project with maven - How to add dependencies from one module to another?
假设我有一个maven
项目,里面有一些maven模块。
我的主模块依赖于其他模块,因此当我编译主模块时,它们应该被编译在一起。
问题是,如何将这些模块作为依赖项添加到主模块?
我知道如果我有一个我想要与maven一起使用的自定义库,让我们说一个utilities project
,我必须编译项目的jar,在它上面做一个mvn install:install-file
将它安装在本地存储库中然后将其添加到pom.xml
。
我是否必须对所有模块执行此操作并将依赖项添加到主模块上的pom.xml
? 因为如果它应该这样做,在更改其他模块上的代码时将会有很多工作要做。
使用的最佳实践是什么,避免了将模块编译/安装到本地存储库的麻烦?
问题是,如何将这些模块作为依赖项添加到主模块?
与向maven项目添加任何其他依赖项的方式相同。 通过将组ID,工件ID和版本添加到<dependency>
元素
我是否必须对所有模块执行此操作并将依赖项添加到主模块上的pom.xml中?
如果您的主模块依赖于某个模块A,那么只有主模块的pom应包含对模块A的依赖性声明。您可以对模块的所有依赖项执行此操作。
我不知道你在“更改其他模块上的代码时的大量工作”是什么意思。 Maven与代码更改无关,它只是在给定时刻构建项目,无论它们看起来如何......
使用的最佳实践是什么,避免了将模块编译/安装到本地存储库的麻烦?
您调用mvn install
on的任何项目都会被构建,并且它的jar被复制到本地存储库。 这就是让罐子进入仓库所需要做的一切。 这也将把所有相关的罐子(如果有的话)放入本地仓库。
至于多模块项目的最佳实践:
如果你的父项目(里面有模块的项目)有<modules>
部分列出你的应用程序的模块,而模块在你父项目的子目录中,那么你只需要mvn install
(或任何你想做的)父项目项目,这将导致所有模块按照它们之间声明的依赖关系定义的顺序构建。 这意味着如果您的主模块依赖于模块A,那么模块A将在主模块之前构建。 这样,您可以使用一个命令构建和安装所有模块。 另一方面,这种方法在模块之间进行更紧密的耦合,这在某些情况下是不希望的,因此它取决于您的用例是否是一种好的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.