ANT build работает нормально с WS_ANT, но завершается неудачно в RAD
Просто пытаюсь запустить скрипт ANT в IBM RAD\RSA 8 для развертывания в веб-сфере. Работает нормально при запуске из командной строки с использованием WS_ANT.bat, но внутри RAD происходит сбой со следующей ошибкой
Unable to determine WAS Home directory. Please use the wasHome task attribute or set the was.root System property.
Ниже приведен базовый сценарий ANT, скопированный из SO и модифицированный снова, отлично работает из 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>
1 ответ
Если вы посмотрите на файл 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. Это, вероятно, наиболее вероятная причина.