0

プロパティ値を使用するとスクリプトが失敗しますが、リテラル文字列を使用してディレクトリへのパスを指定すると失敗しません。

これは失敗します:

    <target name="build">
            <echo>${dir.intermediate}</echo>
            <echo>${dir.source}</echo>
        <copy todir="${dir.intermediate}" includeEmptyDirs="true">
            <dirset dir="${dir.source}" excludes="${file.default.exclude}, ${file.exclude}"/>
        </copy>
    </target>

これは機能します:

<target name="build">
        <echo>${dir.intermediate}</echo>
        <echo>${dir.source}</echo>
    <copy todir="${dir.intermediate}" includeEmptyDirs="true">
        <dirset dir="/Users/michaelprescott/path" excludes="${file.default.exclude}, ${file.exclude}"/>
    </copy>

プロパティまたはリテラルのディレクトリに絶対パスまたは相対パスを指定しても問題ないようです。

4

1 に答える 1

1

わお。それは特定するのが非常に難しい問題でした。プロパティ ファイルを表示すると、パスが正しく表示されました。echo ステートメントでは正しく表示されました。ant の失敗メッセージからコピーして「ls」に貼り付けた場合でも、正しく表示されました。最後に、ディレクトリ文字列の後にスペースがあることに気付きました。

プロパティファイルには次のようにありました:

"./path "

次のように変更すると修正されました。

"./path"
于 2012-06-08T17:01:12.143 に答える