代码之家  ›  专栏  ›  技术社区  ›  Wolkenarchitekt

在运行时使用maven ant任务更改pom.xml中的属性。有可能吗?

  •  2
  • Wolkenarchitekt  · 技术社区  · 14 年前

    我有以下用例: 我的应用程序是以一个Ant脚本开始的,它向用户询问关于项目配置(数据库设置等)的几个问题。这些设置存储在属性文件中。

    然后我想在我的Ant脚本中运行maven-ant任务,它应该用属性文件的属性替换pom.xml中预先定义的属性。 我不想更改pom.xml。

    有办法吗? 事先谢谢!

    ( BTW i already tried a similar approach with maven only, which seems to be impossible at the moment )

    2 回复  |  直到 14 年前
        1
  •  7
  •   mdma    14 年前

    可以使用重新定义maven命令行上的属性 -D 这些将覆盖项目文件中的属性。

    例如,在pom.xml中

      <properties>
         <myProp>A</myProp>
      </properties>
    

    在ant build.xml中,然后可以像这样调用mvn命令行

    mvn -DmyProp=B install
    

    在项目中将myprop设置为b。这个 mvn ant task page 讨论如何使用宏调用maven命令行。这可以很容易地定制以传递附加属性。

    要单独在Maven中执行此操作,请使用 exec 启动Maven的插件,以与使用Ant:Java任务相同的方式传递命令参数。

        2
  •  1
  •   kabado    14 年前

    您是否尝试在飞行中替换属性? <copy> 蚂蚁任务?

    假设您的属性在文件中 settings.properties . 定义要在中替换的属性 pom.xml 具有 @ 在它们周围,您可以复制pom文件并同时替换一些属性。例如。:

    <copy file='pom.xml' toFile='real-pom.xml'>
      <filterset filtersfile='settings.properties' />
    </copy>
    

    然后调用maven:

    mvn-f real-pom.xml文件