2016-02-05 2 views
0

Используя скрипт Ant, я пытаюсь создать файл бара для развертывания на сервере IIB. Но я столкнулся ошибку вроде:Как устранить сообщение об ошибке командной строки ANT «exec»?

BIP0960E Неправильные "-a", "-l", "-p", или "-о" аргумент подается mqsicreatebar

Пожалуйста, дайте мне знать, как решить эту ошибку.

Thank you.

Я использую следующий скрипт Ant:

<?xml version="1.0" encoding="UTF-8"?> 
<project name="Test" default="Create_bar" basedir="."> 
    <property file="ucd.properties"></property> 
    <taskdef resource="net/sf/antcontrib/antlib.xml"> 
      <classpath> 
       <pathelement location="C:\apache-ant-1.9.6\lib\antcontrib.jar"/> 
      </classpath> 
    </taskdef> 

    <!-- Making Windows command environment --> 
    <target name="mqsiprofile.cmd"> 
    <exec executable="${broker.mqsi.path}\mqsiprofile.cmd" /> 
    </target> 
// <!-- Creating a bar file --> 
     <target name="Create_bar"> 
      <for list="${project_name}" delimiter="," param="pName"> 
       <sequential> 
       <echo message="@{pName}"/> 
       <exec executable="${toolkit.home}\mqsicreatebar.exe" spawn="false" vmlauncher="false" failonerror="true"> 
       // <!-- project's workspace--> 
        <arg value="-data" /> 
        <arg value="${workspaces.dir}" /> 
        <!--barfile generated path--> 
        <arg value="-b" /> 
        <arg value="${bar.loc}\@{pName}.msgflow.generated.bar" /> 
        <!--project Name--> 
        <arg value="-p" /> 
        <arg value="@{pName}" /> 
        <!--Message flows for its corresponding projects which has given in cvsCheckout.properties--> 
        <arg value="-o" /> 
        <arg line="@{bar.loc}\${@{pName}.flow_name}" /> 
        <arg line="@{bar.loc}\IAM_Demo_Compute.esql" /> 
       <arg value="-deployAsSource" /> 
       </exec> 
       </sequential> 
      </for> 
     </target> 

    </project> 

Я поместил все компоненты, необходимые для создания файла бар.

ответ

1

Сообщение об ошибке BIP0960 указывает, что вы передали неправильные параметры исполняемому файлу, который вы используете в своем скрипте. Вам необходимо устранить строку параметров, которую вы передаете в исполняемый файл.

Может быть сложно отлаживать ANT exec заявления так, как вы их структурировали.

Хорошей техникой для отладки сценариев ANT является создание единственного свойства для строки параметров командной строки, а затем эхо-параметры этих параметров на консоль, чтобы подтвердить их конструкцию. Используйте этот вывод строки параметров для проверки, проверки, изменения и повторного запуска команды и ее параметров до тех пор, пока они не будут работать.

Чтобы сделать это, реорганизовать exec заявление так ссылается на одну строку параметров, называется $ {myParams}:

<!-- create the command parameters --> 
<property name="myParams" value="-data ${workspaces.dir} -b ${bar.loc}\@{pName}.msgflow.generated.bar -p @{pName -o @{bar.loc}\${@{pName}.flow_name} @{bar.loc}\IAM_Demo_Compute.esql -deployAsSource" />  
<!-- echo myParams --> 
<echo message="myParams: ${myParams}" /> 
<!-- pass myParams to the executable --> 
<exec executable="${toolkit.home}\mqsicreatebar.exe" spawn="false" vmlauncher="false" failonerror="true"> 
    <arg line="${myParams}" /> 
</exec> 

echo оператор покажет вам переменные свойств расширены. Скопируйте и вставьте это в командную строку и повторите попытку. Когда у вас есть нужные параметры, скопируйте и вставьте их обратно в свой скрипт, заменив статические значения на правильные переменные.

Аналогичным образом легче управлять изменениями в командной строке как одним свойством, а не множеством значений arg.

Используйте эту конструкцию, и вы можете легко устранить любые проблемы с командами exec.

Смежные вопросы