[英]Environmental variables in ant script not working
我正在嘗試為Spring框架項目建立一個與機器無關的構建環境,而我的ant配置似乎無法正常工作。 我搜索了很多,但似乎每個人都認為env。*引用開箱即用。 有人可能會發現我的方式錯誤嗎?
錯誤:
bash-3.1$ ant build
Buildfile: c:\Users\mkumpan\Projects\Spring testing\build.xml
BUILD FAILED
c:\Users\mkumpan\Projects\Spring testing\build.xml:85: c:\Users\mkumpan\Projects\Spring testing\${env.CATALINA_HOME}\lib does not exist.
build.xml文件:85:
<taskdef name="install" classname="org.apache.catalina.ant.InstallTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
catalina-ant-classpath參考:
<path id="catalina-ant-classpath">
<fileset dir="${appserver.lib}">
<include name="catalina-ant.jar"/>
</fileset>
</path>
在build.properties中聲明$ {appserver.lib}:
appserver.home=${env.CATALINA_HOME}
appserver.lib=${appserver.home}/lib
deploy.path=${appserver.home}/webapps
與envvar相呼應:
bash-3.1$ echo $CATALINA_HOME
C:\Program Files\Tomcat
兩大問題:
build.xml
下行添加到build.xml
文件中:
<property environment="env"/>
在引用環境變量時定義前綴。 從環境屬性的Property參考頁面:
檢索環境變量時使用的前綴。 因此,如果指定environment =“myenv”,您將能夠通過屬性名稱“myenv.PATH”或“myenv.TERM”訪問特定於操作系統的環境變量。 請注意,如果您提供帶有最終“。”的屬性名稱。 它不會加倍; 即環境=“myenv。” 仍然允許通過“myenv.PATH”和“myenv.TERM”訪問環境變量。 此功能目前僅在特定平台上實現。 隨意發送補丁以增加支持此功能的平台數量;)。 另請注意,即使操作系統上的環境變量不是,屬性也區分大小寫; 例如,Windows 2000的系統路徑變量設置為名為“env.Path”的Ant屬性,而不是“env.PATH”。
我希望你在使用env.
之前聲明<property environment="env."/>
env.
符號。
此外,下面是構建腳本中用於設置特定環境變量的語法。
**Windows and OS/2**
假設Ant安裝在c:\\ ant中。 以下設置環境:
set ANT_HOME=c:\ant
set JAVA_HOME=c:\jdk-1.5.0.05
set PATH=%PATH%;%ANT_HOME%\bin
**Linux/Unix (bash)**
假設Ant安裝在/ usr / local / ant中。 以下設置環境:
export ANT_HOME=/usr/local/ant
export JAVA_HOME=/usr/local/jdk-1.5.0.05
export PATH=${PATH}:${ANT_HOME}/bin
**Linux/Unix (csh)**
setenv ANT_HOME /usr/local/ant
setenv JAVA_HOME /usr/local/jdk/jdk-1.5.0.05
set path=( $path $ANT_HOME/bin )
將符號鏈接設置為指向JVM / JDK版本可使更新更加無縫。
如果其他人仍在努力完成這項工作(就像我一樣),而你不能(或者不願意)對所有屬性使用export
,請嘗試按照此處的建議set -a
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.