2011-07-01 19 views
10

私は「ファイルセットとパスの違い」の記事をしばらく検索していますが、役に立たないものは何も見つかりませんでした。入れ子パスとファイルセットの違いは何ですか?

<path id="somePathId"> 
    <pathelement path="someDir"/> 
</path> 

<path id="someId"> 
    <path refid="somePathId" /> 
</path> 

<path id="someId"> 
    <fileset dir="someDir"> 
    <include name="*.*"> 
    </fileset> 
</path> 

:たとえば 、以下の(.jarファイルが含まれており、何のサブディレクトリを持っていないと言う、そこにあるsomeDirディレクトリ)の違いは何ですか?

+0

ところで、1ファイル・ファイルセットを指定する可能性があります。代わりにネストされたを使用する方が良いでしょうか? – Dmitry

+0

ありがとう、編集済み – Dmitry

答えて

2

これらはさまざまな状況で使用されます。

filesetは、ファイルのグループを指定するために使用されます。 selectorpatternsetを使用して、必要なファイルのみを取得することができます。

classpathは、クラスパス参照を指定するために使用されます。 classpathは、単一のjar(location="...")、;または:で区切られたjar(path="...")のリストまたはネストされたリソースのコレクション(filesetなど)で指定できます。

また、あなたがそれらをデバッグする場合、それは異なります。

スクリプトについては
<property name="debug.classpath" refid="classpath"/> 
<echo message="Classpath = ${debug.classpath}"/> 

<path id="somePathId"> 
    <pathelement location="someDir"/> 
</path> 

<echo message="Build-path: ${toString:build-path}" /> 

私はそれをテストしたが応じませんでしたdocumentationpath=には、;またはが必要ですjarの区切りリスト。これは、2番目の例と同じではありません。

+0

ありがとうございました!それが本当に助けになりました! – Dmitry

2

<path><fileset>間の主な違いは、ファイルの特定の種類(パス内のファイルの基本的には、そのグループ...ない、必要なすべてのファイルを含めるか、除外したい場合は<fileset>に指定できるということです)例えば:

<path id="someId"> 
    <fileset dir="someDir"> 
    <include name="*.java"> 
    <include name="*.properties"> 
    </fileset> 
</path> 
+0

AFAIKこの例は、両方の式、つまり '* .java'と' * .properties'に一致するファイルを検索するため、この例は機能しません。 – Thresh

+2

はい、これは私が言うことです。私はこれらのファイルを探しています。パターンを除外できない場合は、 ' Arpit

+0

とにかく、ありがとうございます! – Dmitry

関連する問題