3

我们目前有一个基于 ant 的项目,并且正在考虑迁移到 maven。该项目是基于 java ee 的,但是它具有模块结构,其中每个模块可以包含多个 java ee 项目。像这样:

mod1-->subdir-->war-A
             -->war-B
mod1->src
mod1->build/classes

添加了多个这样的模块以及一些 jar 依赖项,并创建了一个 EAR 文件。+ 自定义清单文件

像这样

EAR -->war-A
    -->war-B
    -->war-C
    -->war-D
    lib/allclasses-from-allmodules-in-one jar

这种结构和依赖关系无法更改——它来自我们使用的框架。

我对 maven 的了解还不够,无法弄清楚这是多少工作——或者我们的项目结构和开发实践是否与 maven 约定相去甚远,以至于不值得花时间。

我意识到你可以让 maven 做任何你想做的事——但如果我们做出改变,它应该是为了 maven 的利益,而不是让生活变得更难!:)

另一个重要的事情是我希望能够创建爆炸的耳朵文件......我有什么选项来定制那个方面?如果我使用定制的“任务”,我会放弃什么(我不确定 maven 术语是什么)

4

2 回答 2

2

老实说,我不会费心把它移植到 maven 上——尽管我是一个完全的 maven 粉丝,但我还是这么说。将在构建时具有任何复杂性的完整项目转换为 maven 通常不值得您经历这些麻烦。

对于新项目或者这个应用程序的重写(如果它真的发生的话),我完全建议从 maven 开始。

我意识到你可以让 maven 做任何你想做的事——但如果我们做出改变,它应该是为了 maven 的利益,而不是让生活变得更难!:)

你可以“弯曲 maven”来做任何你想做的事,但通常你这样做是在自取其辱。maven 的重点是它是按惯例构建的,而不是按配置构建的。您越是冒险去做超出 Maven 生命周期范围的事情,您在构建的维护和可靠性方面所要求的麻烦就越多。

于 2010-08-26T20:36:42.340 回答
1

我不是 100% 确定我了解您当前的项目结构,但如果您无法更改任何内容,那么似乎存在重大的阻碍问题。使用 Maven:

  1. 嵌套模块的父模块不包含代码
  2. 一个模块只产生一个主要工件(但不确定您的项目是否属于这种情况)

与上述问题相比,不遵循 Maven 默认布局是一个小问题。

如果没有更多关于可以改变什么的细节(不破坏结构),我根本不认为它以一种优雅的方式是可行的(即使是可行的)。

于 2010-08-27T01:53:34.537 回答