【问题标题】:How to easily copy/rename/remove files with Maven (as in Ant)如何使用 Maven 轻松复制/重命名/删除文件(如在 Ant 中)
【发布时间】:2013-07-16 10:16:11
【问题描述】:

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

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

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

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

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

谢谢,

马蒂亚

【问题讨论】:

标签: maven ant profiles


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2010-12-22
      • 1970-01-01
      • 2010-09-28
      • 1970-01-01
      • 2017-12-13
      • 2010-11-05
      • 2010-11-17
      • 2013-04-12
      • 1970-01-01
      相关资源
      最近更新 更多