我希望能够将我的项目拆分成Maven子模块,并将它们重用为其他项目的Maven依赖项。重用maven模块作为依赖关系
正如我从文档了解,子模块必须指定他们的父项目。这使得它们不适合作为依赖关系重用。
这使得在模块分裂远没有吸引力恕我直言。或者我错过了什么?
我倾向于在需要分享项目时拆分组件中的项目。否则,为什么要麻烦?
有人可以详细说明吗?
是否有可能声明一个模块没有指定它的父级? 如何重构依赖项和所有依赖项目?
欢呼声
我希望能够将我的项目拆分成Maven子模块,并将它们重用为其他项目的Maven依赖项。重用maven模块作为依赖关系
正如我从文档了解,子模块必须指定他们的父项目。这使得它们不适合作为依赖关系重用。
这使得在模块分裂远没有吸引力恕我直言。或者我错过了什么?
我倾向于在需要分享项目时拆分组件中的项目。否则,为什么要麻烦?
有人可以详细说明吗?
是否有可能声明一个模块没有指定它的父级? 如何重构依赖项和所有依赖项目?
欢呼声
relativePath只是构建时的提示。一旦安装了所有的模块和父代,您可以将各个模块称为其他项目中的依赖项。
据我所知, 子模块必须指定他们的 父项目。这使得它们 不适合作为 依赖项重用。
指定父项目不会使模块不适合作为依赖项。大多数模块都有一个父pom,它定义了常见的依赖/插件和其他东西。例如,请参阅Spring依赖关系。
是否可以声明模块 没有指定它的父项?
每个模块都是一个单独的maven项目。因此,它不需要父母。通常,在模块的分层结构中,每个模块都在folderand父pom位于模块的父文件夹中。父pom通常构建所有模块。
|
--- module 1
|
--- pom.xml
|
--- module 2
|
--- pom.xml
|
pom.xml <-- parent pom
在没有父pom的情况下,您需要单独构建每个模块。
请参考this SO的讨论。
父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
随着上述例子中,根据该文档,服务器项目应该指定POM项目1作为父母,和POM项目2为好。
在这种情况下,你如何处理模块和依赖关系概念的混合?
父母poms和pom项目是有用的,毫无疑问。但文档说你必须在模块中指定父代。所以如果你想重复使用,为另一个项目说一个项目的服务器模块,你怎么做到的? ' | ---服务器模块 | --- pom.xml ---客户端模块 ' – nodje 2011-04-12 10:37:00
@nodje。查看弹簧模块(弹簧芯或弹簧腹板)的POM文件。这些模块可以在任何项目中使用,并且具有* parent *声明。 – Raghuram 2011-04-12 10:46:48