2012-04-16 22 views
0

私は2つのANTビルドファイルを別々のディレクトリに置いています。私は<include>の内容を<path>要素の中から一つにしたいと思います。別のディレクトリのビルドファイルからantパスのような構造をインポートする

これはそれを行うのに十分シンプルであるべき、しかし、ANTは常に現在basedirに対する<path>要素を評価する上で主張として、私は(間違っている、それを適切に行う方法についてのドキュメントを見つけることができていないように思えます他のディレクトリのファイルからアクセスするため)。

答えて

0

これはそれを行うのに十分シンプルであるべきように思えるが、ANTは常に現在のbasedirへの相対的な要素を評価する上で主張しているように私は(これは、それを正しく行う方法についてのドキュメントを見つけることができませんでした間違っている、別のディレクトリにあるファイルからアクセスするため)。

ANTは間違っていません。 A build.xmlファイルは通常、プロジェクト(またはプロジェクトのサブコンポーネント)のファイルシステムのルートに存在し、そのビルドのロジックを表します。あなたが共有しようとしている場合

次の2つのプロジェクトの間のパスを共有したい場合は、それは悪い考えである、二つのプロジェクトはほとんど、あるいは、.....正確

を同じビルド・パスを共有しないだろう2つのプロジェクトのサブコンポーネント間のパス、なぜoveride the default value of the basdirプロパティは次のようにしませんか?

<project name="my-project" default="build" basedir=".."> 
.. 

最後に、私はApache ivyのような依存関係マネージャの使用を検討することをお勧め。あなたのビルドのクラスパスを管理しましょう。

更新

別のオプションは、パスの依存関係は、同じ相対的なファイル・システム・パスにあるように、あなたのプロジェクトのファイルを構築することです:

$ tree 
. 
|-- lib 
| |-- dependency1.jar 
| `-- dependency2.jar 
|-- sub-component1 
| `-- build.xml 
`-- sub-component2 
    `-- build.xml 

各サブコンポーネントのbuild.xmlはその後だそれを宣言する

<path id="build.path"> 
    <fileset dir="../lib" includes="*.jar"/> 
</path> 
+0

2つのプロジェクトのサブコンポーネントですが、その解決策では両方のビルドファイル同じbasedirを使用するには?私はそれを望んでいません、私はちょうど単一の特定の ''要素の内容を使い、それを元のファイルの内容に評価させたいと思います。 –

+0

@RyanArcher別のオプションが投稿されました –

+0

これはラウンドアバウトソリューションのようなものです...パスを別のbasedirから評価するコマンドはありませんか?プロパティを使って簡単に行うことができます... ''要素でそれを行う方法があるようです。 –

関連する問題