【问题标题】:Change properties in pom.xml at runtime with Maven Ant Tasks. Is it Possible?在运行时使用 Maven Ant 任务更改 pom.xml 中的属性。可能吗?
【发布时间】:2011-02-20 09:09:52
【问题描述】:

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

然后我想通过 Maven Ant Tasks 从我的 Ant 脚本中运行 Maven,它应该将 pom.xml 中的预定义属性替换为属性文件的属性。 我不想更改 pom.xml。

有没有办法做到这一点? 提前致谢!

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

【问题讨论】:

    标签: ant properties maven pom.xml


    【解决方案1】:

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

    例如在 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】:

      您是否尝试通过&lt;copy&gt; ant task 即时替换属性?

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

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

      然后你调用maven:

      mvn -f real-pom.xml

      【讨论】:

        猜你喜欢
        • 2011-03-20
        • 1970-01-01
        • 1970-01-01
        • 2023-03-06
        • 2011-03-31
        • 2013-04-17
        • 2013-06-29
        • 2011-02-07
        • 1970-01-01
        相关资源
        最近更新 更多