我目前正在使用 Spring 开发多个 Web 应用程序。我使用 Maven 进行构建,使用 Git 进行版本控制。目前,我正在尝试找到一种方法来拆分所有 webapps 使用的某些东西的开发,例如,我有一些对所有项目都相同的辅助类。问题是,我不想只使用类,还想使用资源文件和某种父 POM,同时仍然独立于存储库并能够从 Git 中受益。
尽管我不热衷于更改构建系统,但我并不是 Maven 的真正粉丝。尤其是继承和聚合的概念是我现在的束缚。也许常春藤是一个选择?
我想简要介绍一下我的设置:
有某种父项目,包括一些类、Spring 配置文件和其他资源,如模板、图像和样式表。让我们称之为base
。这不是一个完整的 Spring webapp,不会被部署。还有其他几个项目继承自WAR,base
并且应该打包到 WAR 中。让我们称它们为webapp1
and webapp2
。
base
,webapp1
并webapp2
拥有自己的 Git 存储库:
\
|
|- base.git (base's repository)
|
|- webapp1.git (webapp1's repository)
| \
| base (base used as a Git submodule)
|
|- webapp2.git (webapp2's repository)
\
base (base used as a Git submodule)
我希望能够base
使用 Git 子模块从 webapps 内部更改 s 代码,并且还能够使用 webappmvn package
的目录内构建每个 webapp 的功能齐全的 WAR。
Mavenparent
或module
不允许这样的动态方法。我根本没有找到这样的使用方法,module
并且使用它来parent
满足我的需求是复杂而静态的:每次更改base
都需要将一个新版本推送到存储库,以便 webapp 可以从中继承。
也许我没有完全理解 Maven 的继承,但我现在很迷茫。
有没有人取得类似的成功?您使用什么构建系统以及如何使用?