2012-03-16 22 views
1

私はAntを使用しています。1.8アリでのモジュール間の依存性

私はインテリジェントIDEAに複数のモジュールを持っています。各モジュールはbuild.xmlを持っていますが、現在私はそのファイルのbuild.xmlまでブラウズし、すべてのモジュールに対してantを実行する必要があります。例: モジュールBのビルドの成功は、モジュールAのビルドが成功したかどうかによって異なります。

今、私はこのプロセスを更新したいと思います。モジュールAのビルドをビルドする際にビルドプロセスを記述し、ビルドBをビルドしているときに、モジュールAのビルドが成功したかどうかをチェックするというオプションが存在するなら、それは素晴らしいことです。

現在のAnt機構を使用する方法はありますか。私はアイビーで似たようなものを見ることができましたが、私のプロジェクトでそれを使うことはできません。

基本的なAnt機能を使用してアプローチを提案してください。

+0

なぜあなたはツタを使用することはできませんか?この問題をうまく解決します。 –

答えて

3

ANTでsubantタスクは、例えば、マルチモジュールビルドを起動する最も柔軟な方法である:

<project name="parent" default="build"> 

    <target name="build"> 
     <subant> 
      <filelist dir="."> 
       <file name="moduleA/build.xml"/> 
       <file name="moduleB/build.xml"/> 
      </filelist> 
      <target name="clean"/> 
      <target name="build"/> 
     </subant> 
    </target> 

</project> 

プロジェクト構造

|-- build.xml 
|-- moduleA 
| `-- build.xml 
`-- moduleB 
    `-- build.xml 

注:

で私の意見は、このタスクを使用する最も強力な方法はApache ivyのbuildlistタスクと組み合わせることです。 ivyモジュール間の依存関係宣言によってモジュールのビルド順序が自動的に決定されるようにします。

0

ありがとうございました! あなたの答えは私を大いに助けました。

上記の回答に加えて、プロパティがプロパティファイルから読み込まれている場合、詳細を追加したいと思います。

プロジェクト構造:


| - build.xmlの
| - ProjectOne
        - build.xmlの
        - antbuilds.properties
| - ProjectTwo
        - build.xmlの
        - antbuilds.properties

共通のANTビルドファイル:

<project name="Parent" default="all"> 
<target name="ProjectOne"> 
    <subant> 
     <property file="ProjectOne/antbuilds.properties"/> 
     <filelist dir="."> 
      <file name="ProjectOne/build.xml"/> 
     </filelist> 
     <target name="deploy"/> 
    </subant> 
</target> 
<target name="ProjectTwo"> 
    <subant> 
     <property file="ProjectTwo/antbuilds.properties"/> 
     <filelist dir="."> 
      <file name="ProjectTwo/build.xml"/> 
     </filelist> 
     <target name="deploy"/> 
    </subant> 
</target> 
<target name="all" depends="ProjectOne, ProjectTwo"> 
</target> 

関連する問題