3

我正在为一些 java 项目开发原型,直到现在我使用多模块 Maven 项目,根 pom 是另外 6 个 Maven 模块的父级。最初我计划用基于 Swing 的经典 GUI 制作一个独立的解决方案。

现在我决定制作一个 Web 应用程序并尝试 Grails。我搜索了很多并研究了一段时间,但无法弄清楚组织我的 Maven 项目的最简单方法是什么。现在我知道如何创建空的 Grails Maven 项目。但是我应该如何向它介绍我的其他 Maven 模块呢?我目前想出的是:

  1. 创建新的 Grails Maven 模块,将其他模块的所有源代码放入其中的 src/java 目录,并将其他模块 pom 文件中的所有依赖项和插件复制到 Grails 的 pom.xml 文件中。
  2. 创建空的 Grails 插件(每个现有 java 模块一个)并将 java Maven 模块的代码和依赖项迁移到 Grails 插件 pom 文件。
  3. 设置自己的本地 Nexus 存储库。将 java 模块的工件放入其中并在 Grails 项目中重用它们。这种方式使 Grails 开发与其他在纯 java 上完成的业务逻辑开发分开。

由于显而易见的原因,我不喜欢所有这三种解决方案:

  1. 我将失去模块化和重用当前 java 项目的单独模块的可能性。
  2. 首先,过多的重构。其次,最终我将既没有​​良好的可重用 Maven 模块,也没有 Grails 插件(它只会看起来像一个)。
  3. 我仍处于项目的早期原型设计阶段,我将不得不经常在 Grails 模块开发的同时更改 Java 模块。显然,等到我的 java 模块在单行更改后进入 Nexus 后才能在 Grails 中查看整个结果并不是很方便。

那么,我应该选择什么选项?其他的可能性是什么?我有这种感觉,好像我的问题有一个非常简单的答案,之后我会很惭愧。

这里可能相关的另一件事是:我目前使用 Jenkins 为我的 java 模块运行单元测试以及 cucumber-jvm 验收测试,并希望继续这样做;我使用 IntelliJ Idea 12 作为我的 IDE。

4

1 回答 1

0

答案原来很简单。我所要做的就是遵循:

使用根 pom 进入文件夹运行“grails create-app my-app-name” 使用新 grails 项目进入创建的文件夹并运行“grails create-pom my.group.id” 将根 pom 添加到 grail 生成的 grails pom.xml ' last command as parent 将我的其他 6 个 maven 模块作为依赖项添加到 grails 的 pom.xml 中。在我的根 pom 上运行“mvn clean install”后,我检查了为我的 Grails 模块生成的 .war 文件是否包含来自其他模块的所有必要 jar。

好吧,一切都变得如此简单。Maven 真的很棒,也许出现了这么长的问题,因为我只是没想到它会那么好。

于 2014-03-20T09:46:36.373 回答