Max*_*pan 12 java ant environment-variables
我正在尝试为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.
Run Code Online (Sandbox Code Playgroud)
build.xml文件:85:
<taskdef name="install" classname="org.apache.catalina.ant.InstallTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
Run Code Online (Sandbox Code Playgroud)
catalina-ant-classpath参考:
<path id="catalina-ant-classpath">
<fileset dir="${appserver.lib}">
<include name="catalina-ant.jar"/>
</fileset>
</path>
Run Code Online (Sandbox Code Playgroud)
在build.properties中声明$ {appserver.lib}:
appserver.home=${env.CATALINA_HOME}
appserver.lib=${appserver.home}/lib
deploy.path=${appserver.home}/webapps
Run Code Online (Sandbox Code Playgroud)
与envvar相呼应:
bash-3.1$ echo $CATALINA_HOME
C:\Program Files\Tomcat
Run Code Online (Sandbox Code Playgroud)
两大问题:
hmj*_*mjd 21
将以下行添加到build.xml
文件中:
<property environment="env"/>
Run Code Online (Sandbox Code Playgroud)
在引用环境变量时定义前缀.从环境属性的Property参考页面:
检索环境变量时使用的前缀.因此,如果指定environment ="myenv",您将能够通过属性名称"myenv.PATH"或"myenv.TERM"访问特定于操作系统的环境变量.请注意,如果您提供带有最终"."的属性名称.它不会加倍; 即环境="myenv." 仍然允许通过"myenv.PATH"和"myenv.TERM"访问环境变量.此功能目前仅在特定平台上实现.随意发送补丁以增加支持此功能的平台数量;).另请注意,即使操作系统上的环境变量不是,属性也区分大小写; 例如Windows 2000'