【发布时间】:2011-01-20 23:14:59
【问题描述】:
我目前正在使用 Spring 开发多个 Web 应用程序。我使用 Maven 进行构建,使用 Git 进行版本控制。目前我正在尝试找到一种方法来拆分所有 webapps 使用的某些东西的开发,例如我有一些对所有项目都相同的辅助类。问题是,我不想只使用类,还想使用资源文件和某种父 POM,同时仍然独立于存储库并能够从 Git 中受益。
虽然我不热衷于更改构建系统,但我并不是 Maven 的真正粉丝。尤其是继承和聚合的概念是我现在的束缚。也许常春藤是一个选择?
我想简要介绍一下我的设置:
有某种父项目,包括一些类、Spring 配置文件和其他资源,如模板、图像和样式表。我们称之为base。这不是一个完整的 Spring webapp,不会被部署。还有几个其他项目从base继承,应该打包到 WAR 中。我们称他们为webapp1 和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)
我希望能够使用 Git 子模块从 webapps 内部更改 bases 代码,并且还能够使用 webapp`s 目录中的 mvn package 构建每个 webapp 的功能齐全的 WAR。
Maven 的parent 或module 不允许这样的动态方法。我根本没有找到像这样使用module 的方法,而使用parent 来满足我的需求是复杂且静态的:对base 的每次更改都需要将新版本推送到存储库,以便webapp `s 可以继承它。
也许我没有完全理解 Maven 的继承,但我现在很迷茫。
有没有人取得过类似的成功?您使用了什么构建系统以及如何使用?
【问题讨论】:
-
只是一个简单的JAR,需要打包成WAR文件吗?
-
不,不是。如上所述,我还想包含某种“元构建配置”。使用父 POM 可以实现什么。有些任务必须为所有项目执行,我不想复制和粘贴它们。
标签: git spring maven-2 build-process ivy