多模块 IntelliJ 项目,其中包含如何将依赖项从一个模块添加到另一个模块



假设我有一个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的任何项目都会生成,并将其 jar 复制到本地存储库。这就是将罐子放入存储库所需要做的就是。这还会将所有依赖 jar(如果可用)放入本地存储库中。

至于多模块项目的最佳实践:

如果您的父项目(内部有模块的项目)<modules>列出应用程序模块的部分,并且模块位于父项目的子目录中,那么您只需mvn install(或任何您想做的事情)父项目,这将导致所有模块按它们之间声明的依赖关系定义的顺序构建。这意味着,如果您的主模块依赖于模块 A,那么模块 A 将在主模块之前构建。这样,您可以使用一个命令构建和安装所有模块。另一方面,这种方法使模块之间的耦合更加紧密,这在某些情况下是不需要的,因此它是否是一种好方法取决于您的用例。

相关内容

最新更新