0

我正在开发一个项目并使用 Maven 来构建它。该项目是一个相当大的 Java Web 应用程序,它应该可以与 Mysql 和 Oracle 数据库一起使用。

问题是源代码中有一些与两个数据库中的任何一个相关的特定注释,以及其他一些差异,因此我不得不在为两个数据库之一构建应用程序之前手动注释/取消注释部分代码.

基本上我想要实现的是让我的构建脚本(可能通过 Maven 配置文件)在构建之前根据我希望我的战争工作的数据库自动切换源类。

简而言之,这个想法是拥有 MyClass.oracle 和 MyClass.mysql,并且根据我的构建配置文件,我应该在源目录中移动两者之一,将其重命名为 MyClass 并构建。应该对某些包、类和配置文件执行此操作。

有什么方法可以通过“纯”Maven 实现吗?到目前为止,我遇到的唯一解决方案是使用 antrun 插件并在其中引用 Ant build.xml。

谢谢,

马蒂亚

4

2 回答 2

0

一个纯粹的 maven 解决方案是开发自己的 maven 插件。根据您的要求,这可能有点矫枉过正,但一点也不难,您可以在此处查看如何实现这一点。

于 2013-07-16T18:01:17.487 回答
0

这是 Maven 的限制。Maven 的目的之一是没有构建脚本。您应该简单地使用可用的插件,并以正确的方式设置您的项目,神奇的是,一切都会构建!

有一个解决方案:使用 Ant。好吧,不是用 Ant 重做整个项目,而是使用antrun插件,您可以在 Maven 构建生命周期的各个阶段运行一些 Ant 任务。

我已经很久很久没有使用它了,所以我不会尝试编写测试pom.xml,但我不记得它很难使用。

当然,正确的 Maven 解决方案是将你的项目分成“公共核心”代码,然后是使用“公共核心”的单独的 Oracle 和 MySql 客户端。顺便说一句,我希望你没有修补源代码。相反,您正在使用属性文件为您执行此操作。

于 2013-07-16T19:11:48.867 回答