私の要件は非常に簡単です。例外をスローしないで内部的に例外を処理するANTタスクがありますが、代わりにカスタムメッセージ[これらは例外ではありません]をコンソールに投げています。以下のサンプルが、「指定された名前のワークスペースが存在しません」というテストとともに示されています。ANTスクリプトでの条件付きタスクの実行
ここでの私の要件は、どのようなメッセージが離れて「ビルドが成功」からがあれば、私はそれがさらに行くことはありませんように、私のANTスクリプトが失敗したことを確認する必要があり、です。しかし、コンソールに書き込まれたそのカスタムメッセージをどのように読むのか分からないので、私はそうすることができません。
「記録」タスクを試してみましたが、このログはコンソールにのみ書き出され、ファイルには書き込まれなかったため、失敗しました(理由はわかりません)。しかし、それがファイルに書き込まれたとしても、ファイルの各行を読んで、特定のテキストが存在するかどうかを知ることが理想的です。
以前に実行されたコンソールから簡単に試してみる方法はありますか?あなたが探しているもの
<target name="build">
<record name="test.txt" action="start" append="true" loglevel="verbose" />
<echo>Welcome to Apache Ant! Building the project in Cordys Middleware</echo>
<property environment="env"/>
<property name="bop.install.dir" value="${env.CORDYS_HOME}"/>
<exec executable="${bop.install.dir}/components/cws/scripts/linux/CWSPackage.sh" failonerror="true" resultproperty="output">
<env key="CLASSPATH" value="/opt/Cordys/Oracle_Jar/ojdbc6.jar"/>
<arg value="${ORG_NAME}"/>
<arg value="${WORKSPACE_NAME}"/>
<arg value="${PROJECT_NAME}"/>
</exec>
<echo>Finishing the build</echo>
<record name="test.txt" action="stop"/>
<echo>${output}</echo>
<fail>Something wrong here.</fail> <!-- I want to throw this error conditionally -->
</target>
使用しているANTのバージョンは?私はこれを実行しようとしましたが、 "失敗はネストされた" contains "要素をサポートしていません"というエラーで失敗しました。私は同じ問題に直面しているANTの1.10.xxxバージョンを使用してみましたか?私はここで何をしなければならないことは他にありますか? –
@KiranJoshi申し訳ありませんが、私は ''ブロックでそれを忘れてしまいました。もう一度試してみてください。あなたの他の答えに関しては、ant-contribの使用を避けることをお勧めします。 –
CAustin
outputproperty = "$ {exec.output}"はキャプチャされていませんオースティン:( これをエコーしても$ {exec.output}が表示されていて、明らかにこれが原因で失敗しました.... –