1

たくさんのアプリがあります。それらはすべてbuild.xml、プロジェクトのベースディレクトリにファイルがあります。build.xmlすべてのプロジェクトの各ファイルで特定のターゲットを通過して呼び出すantスクリプトを作成しようとしています。

ここに問題があります:

  1. 一部のプロジェクトは、他のプロジェクトよりも深いディレクトリにあります。
  2. 一度に構築する必要があるのは一部のプロジェクトのみです。

subant+を使用antfileして、プロパティファイルでファイルパスのCSVを定義しようとしましたが、これは機能しませんでした。以下は私が持っているものと私が得ているエラーです。

これを行うためのより良い方法がある場合、または私の問題が何であるかを知っている場合は、私に知らせてください!ありがとう!

これは、プロパティファイルで定義されたプロパティです。スクリプトを実行している人に、実行しているスクリプトの現在の場所に相対的なファイルパスをここに追加してもらいたいです。

projects.to.build=

これは、メインビルドスクリプトで使用しようとしているサブアントタスクです。

    <filelist
        id="projectNames"
        dir="${basedir}"
        files="${projects.to.build}"
    />

    <target name="debugAll" description="Builds all the projects listed in the projectNames.properties file.">
        <subant target="debug" antfile="${projects.to.build}">
        </subant>
    </target>

プロパティファイルにプロジェクトが定義されているときにビルドスクリプトを実行しようとすると、次のエラーが発生します。相対パスを使用しています。例:..​​ \ Apps \ AnApp1 \ build.xml、.. \ Apps \ AnApp2 \ build.xml、.. \ OtherApps \ foo \ AnotherApp1 \ build.xml

"No Build Path Specified" (at my subant task)
4

2 に答える 2

12

antfile属性を指定したため、ANTは単一のbuild.xmlファイルを期待していました。


サブアントのドキュメントでは、ファイルセットを子パラメータとして使用する方法について説明しています。

次に例を示します。

<project name="Subant demo" default="run-debug-target">
    <target name="run-debug-target">
        <subant target="debug">
            <fileset dir="." includes="**/build.xml" excludes="build.xml"/>
        </subant>
    </target>
</project>

アップデート

または、ファイルリストを使用することもできます。

<project name="Dry run" default="run">
    <target name="run">
        <subant target="test">
            <filelist dir="projects" files="one/build.xml,two/build.xml,three/build.xml,four/build.xml"/>
        </subant>
    </target>
</project>

次のビルドファイルを処理しています。

  • projects / one / build.xml
  • projects / two / build.xml
  • projects / three / build.xml
  • projects / four / build.xml
于 2012-02-04T10:10:06.120 に答える
-1

すべてのビルド ファイルで同時にターゲットを実行することは可能ですか?

例えば

<project name="Dry run" default="run">
    <target name="run">
        <subant target="test">
            <filelist dir="projects" files="one/build.xml,two/build.xml,three/build.xml,four/build.xml"/>
        </subant>
    </target>
</project>

この例では、すべてのビルド ファイル (one/build.xml、two/build.xml、three/build.xml、four/build.xml) に存在するターゲット "test" を同時に実行する方法はありますか?

于 2016-02-25T14:22:21.030 に答える