我希望能够将我的项目拆分为Maven子模块,并将其作为Maven依赖项重用于其他项目。
据我所知,子模块必须指定其父项目。这使得它们不适合作为依赖项重用。
这使得模块中的拆分远没那么有吸引力恕我直言。或者我错过了什么?
当我需要共享项目时,我倾向于在组件中拆分项目。否则,为什么要打扰?
有人可以详细说明吗?
是否可以声明一个未指定父模块的模块? 如果不能,你如何重构一个依赖项及其所有依赖项目?
欢呼声
答案 0 :(得分:2)
relativePath只是构建时的一个提示。安装完所有模块和父级后,您可以将各个模块称为其他项目中的依赖项。
答案 1 :(得分:2)
据我从文件中了解到的那样 子模块必须指定它们 父项目。这使他们 不适合重复使用 的依赖关系。
指定父项目不会使模块不适合作为依赖项。大多数模块都有父pom,它定义了公共依赖项/插件和其他东西。例如,请参阅spring dependencies。
是否可以声明模块 没有指定它的父亲?
每个模块都是一个单独的maven项目。因此,它不需要父母。通常,在模块的分层组织中,每个模块位于folderand中,父pom位于模块的父文件夹中。父pom通常构建所有模块。
|
--- module 1
|
--- pom.xml
|
--- module 2
|
--- pom.xml
|
pom.xml <-- parent pom
如果没有父pom,则需要单独构建每个模块。
请参阅this SO讨论。
答案 2 :(得分:0)
父母poms和pom项目是有用的,毫无疑问。但是文档说你必须在模块中指定父级。因此,如果您想重用,比如说项目的服务器模块用于另一个项目,您怎么做呢?
|
--- server
|
--- pom.xml
|
--- client
|
--- pom.xml
|
--- webapp
|
--- pom.xml
|
--- Pom project 1
|
<modules>
<module>../server
<module>../client
|
--- Pom project 2
|
<modules>
<module>../server
<module>../webapp
通过上面的例子,根据doc,服务器项目应该将pom项目1指定为父项目,并将pom项目2指定为。
在这种情况下,如何处理模块和依赖概念的混合?