我有一个 webapp,我称之为core,它可以添加插件(不是 maven 插件),但它应该作为一个独立的 webapp 运行和构建。我们有一个核心依赖的插件库,并且所有开发到核心的插件也依赖于它。
像这样:
core -> core-plugin-lib
plugins -> core-plugin-lib
我的目录结构很简单:
root/
core/
pom.xml
core-plugin-lib/
pom.xml
pluginA/
pom.xml
pluginB/
pom.xml
我的第一个问题是:我可以构建核心或任何插件并构建依赖库吗?我阅读了有关modules的信息,但如您所见,该 lib 有 2 个父级。我真正想要的是构建核心并构建库,或者如果我构建了任何插件,我还想独立构建库。还要注意,核心不依赖于任何插件。
第二个问题是:如何构建核心也构建插件,虽然核心不依赖于它们,并且插件不应该是核心的模块。他们可以,这不是必需的,但我宁愿不这样做,因为我想尽可能保持独立。
截至目前,当我构建插件时,它会将自身复制到核心内的 /plugin 目录,并且我在核心 pom 中有一个分发配置文件,用于将现有插件从该目录复制到 webapp 的战争中。因此,当我构建没有配置文件的核心时,它不会复制其插件,但是当我运行分发配置文件时,是的。这可行,但很乏味,因为我必须构建库、构建插件和构建核心。
我想知道是否有任何 pom 结构可以解决我的第一个问题的双重依赖,以及是否有任何方法可以处理第二个问题并通过核心构建插件,即使它们不依赖。并且,如果可能的话,如果我可以在配置文件中而不是单独的 pom.xml 中处理第二个问题。此配置文件使用maven-assembly-plugin创建一个包含所有内容的tar.gz。如果可能的话,我也想保持这一点。