2

我有一个多模块 Maven 项目,其结构如下:

parent
   |
   |-presentation
   |+services
   |    |-services-api
   |    |-services-impl
   |+data-access
   |    |-data-access-api
   |    |-data-access-impl
   |-+connector
   |    |-connector-api
   |    |-connector-implA
   |    |-connector-implB
   |-...

演示模块被打包在一个战争中,它只依赖于 api 模块。

当我运行安装目标时,战争安装的唯一依赖项是 api 模块。要选择要在演示模块中安装的 impl 模块,我正在使用配置文件,这些配置文件在构建时将依赖项添加到 impl 模块,具体取决于所选的配置文件。

从我一直在阅读的内容来看,我认为这不是 maven 配置文件的正确用法。

告诉 maven 将选定的 impl 添加到演示模块的最佳方法是什么?

4

2 回答 2

0

我对配置文件有相同的用法,但仅用于特定的更改(主要是依赖项)。

您不必将所有内容都放在配置文件中。大多数实现依赖项都是常见的,因此直接声明而无需配置文件。

根据目标应用程序服务器,我使用配置文件覆盖属性,添加特定依赖项(例如 CommonJ for Websphere),...

于 2013-10-31T12:48:23.377 回答
0

我从 maven 用户邮件列表中得到了一个解决方案,我认为这是在我的场景中使用 maven 的正确方法。

我为 impl 模块使用运行时依赖项,为每个 api 实现使用一个 war 项目。使用战争覆盖它合并资源并使我能够根据我运行的战争使用正确的模块实现运行应用程序。

于 2013-11-07T14:21:07.897 回答