只是尝试在IBM RAD \ RSA 8中运行ANT脚本以部署到websphere。 使用WS_ANT.bat从命令提示符运行时它工作正常但在RAD内部失败并出现以下错误
Unable to determine WAS Home directory. Please use the wasHome task attribute or set the was.root System property.
以下是从SO复制的基本ANT脚本和Modified再次从WS_ANT运行良好,但不是从RAD
运行<?xml version="1.0"?>
<projectname="project"default="wasListApps"basedir=".">
<description>
Script for listing installed apps.
Example run from:
/opt/IBM/SDP70/runtimes/base_v61/profiles/AppSrv01/bin
</description>
<propertyname="was_home"location="C:\Program Files\ibm\SDP80\runtimes\base_v7"/>
<pathid="was.runtime">
<filesetdir="${was_home}/lib">
<includename="**/*.jar"/>
</fileset>
<filesetdir="${was_home}/plugins">
<includename="**/*.jar"/>
</fileset>
</path>
<propertyname="was_cp"value="${toString:was.runtime}">
</property>
<propertyname="was_server"value="server1"/>
<propertyenvironment="env">
</property>
<targetname="wsStopServer">
<taskdefname="wsStopServer"classname="com.ibm.websphere.ant.tasks.StopServer"classpath="${was_cp}">
</taskdef>
<wsStopServerserver="${was_server}"failonerror="false"/>
</target>
<targetname="wsStartServer" depends="wsStopServer">
<taskdefname="wsStartServer"classname="com.ibm.websphere.ant.tasks.StartServer"classpath="${was_cp}">
</taskdef>
<wsStartServerserver="${was_server}"failonerror="true"/>
</target>
<targetname="wasListApps"depends="wsStartServer">
<taskdefname="wsListApp"classname="com.ibm.websphere.ant.tasks.ListApplications"classpath="${was_cp}">
</taskdef>
<wsListAppwasHome="${was_home}"/>
</target>
</project>
答案 0 :(得分:0)
如果您查看 ws_ant.bat 文件,您会发现它首先调用 setupCmdLine.bat ,您猜对了,设置命令行。该文件尝试通过将其设置为父目录来确定 WAS_HOME 环境变量。
SET CUR_DIR=%cd%
cd /d "%~dp0.."
SET WAS_HOME=%cd%
cd /d "%CUR_DIR%"
从命令行运行时,这很好。您通常位于〜/ SDP / runtimes / base_v7 / bin(或其他服务器版本)目录中。父母是你想去的地方。
我会考虑在运行ws_ant.bat脚本时设置工作目录。这可能是最可能的原因。