如何在Ant build.xml中设置env变量
我想在build.xml目标中设置一个env变量
//now here i want to do something like setenv SIMV3.1 true
在我的java代码中,我想使用以下方法访问它:
if("true".equals(System.getenv("SIMV3.1")){ //do something }
请建议。 我已经尝试了很多东西,但没有一个工作。另外,没有main()方法,因为框架是基于testng的,并且使用testNG调用测试用例。
不变性:在ant中,属性是不可变的:
不行。
可变性:但变量是可变的,因此这有效:
修改代码:
你是如何运行程序的? 如果它使用带有fork的exec,那么您可以将新环境传递给它
https://ant.apache.org/manual/Tasks/exec.html 。
页面示例..
请考虑以下build.xml文件
和小java程序
public class EnvPrint { public static void main(String[] args) { System.out.println(System.getenv("SIMV3.1")); } }
没有任何命令行:
$ ant Buildfile: C:\build.xml myjava: [echo] Value of SIMV3.1=mydefaultvalue [java] mydefaultvalue
使用命令行中的一些参数:
$ ant -DSIMV3.1=commandlineenv Buildfile: C:\build.xml myjava: [echo] Value of SIMV3.1=commandlineenv [java] commandlineenv
是的,你可以做到这一点。 将变量放在build.properties
文件中,并在build.xml中引用它。 然后你可以传递变量……但是我认为如果你需要更好地控制多个环境配置,那么使用Maven Profile会更好。
build.properties
var=${val};
build.xml文件
${var}
CLI
ant -Dvar=value