我正在尝试为Spring框架项目设置一个独立于机器的构建环境,但我的ant配置似乎不起作用。我已经搜索了很多,但每个人似乎都认为 env.* 引用开箱即用。有人能发现我的方式错误吗?
错误:
bash-3.1$ ant build
Buildfile: c:UsersmkumpanProjectsSpring testingbuild.xml
BUILD FAILED
c:UsersmkumpanProjectsSpring testingbuild.xml:85: c:UsersmkumpanProjectsSpring testing${env.CATALINA_HOME}lib does not exist.
构建.xml:85:
<taskdef name="install" classname="org.apache.catalina.ant.InstallTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
Catalina-ant-classpath reference:
<path id="catalina-ant-classpath">
<fileset dir="${appserver.lib}">
<include name="catalina-ant.jar"/>
</fileset>
</path>
${appserver.lib} 在 build.properties 中声明:
appserver.home=${env.CATALINA_HOME}
appserver.lib=${appserver.home}/lib
deploy.path=${appserver.home}/webapps
呼应环境工作:
bash-3.1$ echo $CATALINA_HOME
C:Program FilesTomcat
两大问题:
- 为什么它不解析出 envvar?
- 为什么它要预先附加到envvar的绝对路径?
将以下行添加到build.xml
文件中:
<property environment="env"/>
以在引用环境变量时定义前缀。在环境属性的"属性引用"页中:
检索环境变量时要使用的前缀。因此,如果您指定 environment="myenv",您将能够通过属性名称 "myenv.路径"或"myenv.期限"。请注意,如果提供带有最后 "." 的属性名称,则不会加倍;即 environment="myenv." 仍然允许通过 "myenv.路径"和"myenv.期限"。此功能目前仅在选定平台上实现。请随时发送补丁以增加;)支持此功能的平台数量。 另请注意,属性区分大小写,即使操作系统上的环境变量不区分大小写;例如,Windows 2000 的系统路径变量设置为名为"env"的 Ant 属性。路径"而不是"环境"。路径"。
我希望您在使用env.
表示法之前声明<property environment="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