0

異なるディレクトリに2つのANTビルドファイルがあります。ある要素<include>の内容を次々と調べたいと思います。<path>

<path>これは簡単にできるはずですが、ANTは常に現在の要素に関連する要素を評価することを主張しているため、適切に行う方法についてのドキュメントを見つけることができませんでしたbasedir(これは、からアクセスするため、間違っています)別のディレクトリにあるファイル)。

4

1 に答える 1

0

これは十分に単純なはずですが、ANT は常に現在の basedir に関連する要素を評価することを主張しているため、適切に行う方法に関するドキュメントを見つけることができませんでした (これは、アクセスするために間違っています)。別のディレクトリのファイルから)。

ANT がこれを行うのは間違いではありません。build.xmlファイルは通常、プロジェクト (またはプロジェクトのサブコンポーネント) のファイル システムのルートに存在し、そのビルドのロジックを表します。

2 つのプロジェクト間でパスを共有したい場合、それは悪い考えです。2 つのプロジェクトがまったく同じビルド パスを共有することはめったにありません.....

あるいは、プロジェクトの 2 つのサブコンポーネント間でパスを共有しようとしている場合は、次のように 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>
于 2012-04-16T17:09:55.467 に答える