ant - 使用 Maven Ant 任务在运行时更改 pom.xml 中的属性。是否可以?

标签 ant properties maven pom.xml

我有以下用例: 我的应用程序是使用 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 )

最佳答案

您可以使用 -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 任务相同的方式传递命令参数。

关于ant - 使用 Maven Ant 任务在运行时更改 pom.xml 中的属性。是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2848742/

相关文章:

java - Ant 不会替换同一行中的多个实例

java - 错误 : unknown option: -M while using module option of maven-jdeps-plugin

java - 迁移到 JBoss EAP 7 后找不到通过注释选择 CDI 实例

javascript - 从对象中选取一些随机属性

c# - 如何声明枚举属性的默认值?

java - 在tomcat中部署spring项目

Ant:根据目标调用深度缩进回显输出

ant - 如何使用 ivy 构建 war 而不将 jars 复制到 lib 目录

java - Hibernate 工具无法从 Postgres 表中获取索引信息

android - 未从 ~/.gradle/gradle.properties 读取 Gradle 属性