Сборка ANT работает нормально с WS_ANT, но не работает в RAD - PullRequest
0 голосов
/ 15 августа 2011

Просто пытаюсь запустить сценарий ANT в IBM RAD \ RSA 8 для развертывания в websphere.Он работает нормально, когда запускается из командной строки с использованием 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 Ответ

0 голосов
/ 22 августа 2011

Если вы посмотрите на файл 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.Это, вероятно, наиболее вероятная причина.

...