簡體   English   中英

如何在Ant build.xml中設置環境變量

[英]How to set an env variable in Ant build.xml

我想在我的build.xml目標中設置一個env變量

<target name="run-tenantManagement" depends="jar">
   <property name="SIMV3.1" value="${SIMV3.1}" />
    //now here i want to do something like setenv SIMV3.1 true
</target>

在我的Java代碼中,我想使用以下代碼進行訪問:

if("true".equals(System.getenv("SIMV3.1")){
//do something
}

請提示。 我嘗試了很多東西,但是都沒有用。此外,由於框架基於testng並且使用testNG調用測試用例,因此沒有main()方法。

您如何運行程序? 如果它使用exec與fork,那么您可以將新環境傳遞給它

https://ant.apache.org/manual/Tasks/exec.html

頁面中的示例。

<exec executable="emacs">
  <env key="DISPLAY" value=":1.0"/>
</exec>

考慮以下build.xml文件

<?xml version="1.0"?>
<project name="MyProject" default="myjava" basedir=".">
  <target name="myjava">
    <!--default , if nothing comes from command line -->
    <property name="SIMV3.1" value="mydefaultvalue"/>

    <echo message="Value of SIMV3.1=${SIMV3.1}"/>
    <java fork="true" classname="EnvPrint">
      <env key="SIMV3.1" value="${SIMV3.1}"/>
    </java>
  </target>
</project>

和小的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

不變性:在ant中,屬性是不變的:

<property name="env.foo" value="your value goes here"/>

將無法正常工作。

可變性:但是變量是可變的,因此可以正常工作:

<variable name="env.foo" value="your value goes here"/>

修改后的代碼:

<target name="run-tenantManagement" depends="jar">
    <variable name="env.SIMV3.1" value="${SIMV3.1}"/>
</target>

是的,您可以這樣做。 將變量放在build.properties文件中,並在build.xml中引用它。 然后,您可以傳遞變量...但是我認為,如果需要更好地控制多個環境配置,使用Maven配置文件會更好。

build.properties

var=${val};

build.xml文件


 <property file="build.properties"/>     
 <property name="var" value="${val}"/>
   <target name="init">
      <echo>${var}</echo>
  </target>

CLI


 ant -Dvar=value

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM