Mat*_*ari 10 java intellij-idea maven
假设我有一个maven内部有一些maven模块的项目.
我的主模块依赖于其他模块,因此当我编译主模块时,它们应该被编译在一起.
问题是,如何将这些模块作为依赖项添加到主模块?
我知道如果我有一个我想要与maven一起使用的自定义库,让我们说一个utilities project,我必须编译项目的jar,mvn install:install-file在它上面安装它在本地存储库然后将它添加到pom.xml.
我是否必须对所有模块执行此操作并将依赖项添加到pom.xml主模块上?因为如果它应该这样做,在更改其他模块上的代码时将会有很多工作要做.
使用的最佳实践是什么,避免了将模块编译/安装到本地存储库的麻烦?
问题是,如何将这些模块作为依赖项添加到主模块中?
与向 Maven 项目添加任何其他依赖项的方式相同。<dependency>通过向元素添加组 ID、工件 ID 和版本
我是否必须对所有模块执行此操作并将依赖项添加到主模块上的 pom.xml 中?
如果你的主模块依赖于某个模块 A,那么只有主模块的 pom 应该包含对模块 A 的依赖声明。你可以为模块的所有依赖项执行此操作。
我不知道你所说的“更改其他模块上的代码时需要做很多工作”是什么意思。Maven 与代码更改无关,它只是构建项目,无论它们在给定时刻是什么样子......
避免将模块编译/安装到本地存储库的麻烦的最佳实践是什么?
您调用的任何项目mvn install都会构建,并将其 jar 复制到本地存储库。这就是将 jar 放入存储库所需要做的全部事情。这还会将所有依赖 jar(如果有)放入本地存储库中。
至于多模块项目的最佳实践:
如果您的父项目(内部包含模块的项目)具有<modules>列出应用程序模块的部分,并且模块位于父项目的子目录中,那么您只需mvn install(或您想要执行的任何操作)父项目,这将导致所有模块按照它们之间声明的依赖关系定义的顺序构建。这意味着如果您的主模块依赖于模块 A,那么模块 A 将在主模块之前构建。这样您就可以使用一个命令构建和安装所有模块。另一方面,这种方法使模块之间的耦合更加紧密,这在某些情况下是不需要的,因此这取决于您的用例是否是一个好的方法。
| 归档时间: |
|
| 查看次数: |
8901 次 |
| 最近记录: |