我正在为一些 java 项目开发原型,直到现在我使用多模块 Maven 项目,根 pom 是另外 6 个 Maven 模块的父级。最初我计划用基于 Swing 的经典 GUI 制作一个独立的解决方案。
现在我决定制作一个 Web 应用程序并尝试 Grails。我搜索了很多并研究了一段时间,但无法弄清楚组织我的 Maven 项目的最简单方法是什么。现在我知道如何创建空的 Grails Maven 项目。但是我应该如何向它介绍我的其他 Maven 模块呢?我目前想出的是:
- 创建新的 Grails Maven 模块,将其他模块的所有源代码放入其中的 src/java 目录,并将其他模块 pom 文件中的所有依赖项和插件复制到 Grails 的 pom.xml 文件中。
- 创建空的 Grails 插件(每个现有 java 模块一个)并将 java Maven 模块的代码和依赖项迁移到 Grails 插件 pom 文件。
- 设置自己的本地 Nexus 存储库。将 java 模块的工件放入其中并在 Grails 项目中重用它们。这种方式使 Grails 开发与其他在纯 java 上完成的业务逻辑开发分开。
由于显而易见的原因,我不喜欢所有这三种解决方案:
- 我将失去模块化和重用当前 java 项目的单独模块的可能性。
- 首先,过多的重构。其次,最终我将既没有良好的可重用 Maven 模块,也没有 Grails 插件(它只会看起来像一个)。
- 我仍处于项目的早期原型设计阶段,我将不得不经常在 Grails 模块开发的同时更改 Java 模块。显然,等到我的 java 模块在单行更改后进入 Nexus 后才能在 Grails 中查看整个结果并不是很方便。
那么,我应该选择什么选项?其他的可能性是什么?我有这种感觉,好像我的问题有一个非常简单的答案,之后我会很惭愧。
这里可能相关的另一件事是:我目前使用 Jenkins 为我的 java 模块运行单元测试以及 cucumber-jvm 验收测试,并希望继续这样做;我使用 IntelliJ Idea 12 作为我的 IDE。