2013-07-16 88 views
0

我正在开发一个项目并使用Maven构建它。该项目是一个相当大的Java Web应用程序,它应该可以同时用于Mysql和Oracle数据库。如何使用Maven轻松复制/重命名/删除文件(如在Ant中)

问题是,有一些特定的注释与源代码中的两个数据库中的任何一个相关,还有一些其他的不同之处,所以我不得不在创建应用程序之前手动评论/取消注释部分代码的两个数据库。

基本上我想实现的是让我的构建脚本(也许通过Maven配置文件)在构建之前自动切换源类,具体取决于我希望我的战争适用的数据库。

简单来说,这个想法是有MyClass.oracle和MyClass.mysql,并且根据我的构建配置文件,我应该在源代码目录中移动其中的一个,将其重命名为MyClass并构建。这应该为一些包,类和配置文件完成。

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

谢谢

马蒂亚

+1

Maven的方法是将代码库的公共部分分离成一个通用模块,然后为MySQL和Oracle分别安装两个独立的项目。参见:http://stackoverflow.com/questions/2132958/ant-to-maven-multiple-build-targets –

回答

0

一个纯粹的Maven的解决办法是开发自己的Maven插件。根据您的要求,这可能是一个矫枉过正的问题,但它并不难,你可以看到如何实现这个here

0

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

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

我已经使用了很长很长的时间,所以我不打算写一个测试pom.xml,但我不记得它很难使用。

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

相关问题