0

次の Ant スニペットが機能するはずです。

    ...
    <mkdir dir="${web.build.war.dir}/WEB-INF/classes"/>
    <copy todir="${web.build.war.dir}/WEB-INF/classes">
        <fileset dir="${web.build.classes.dir}">
            <exclude name="**/pos/**" />
        </fileset>
    </copy>
    ...

${web.build.classes.dir}パスにあるファイルを${web.build.war.dir}/WEB-INF/classes除いて、すべてのファイルをコピーする必要があり/pos/ます。

しかし、何らかの理由でfind build、プロジェクトを実行すると、次のような出力が得られます。

...
build/war/WEB-INF/classes/my/path/to/pos
build/war/WEB-INF/classes/my/path/to/pos/Class1.class
build/war/WEB-INF/classes/my/path/to/pos/Class2.class
build/war/WEB-INF/classes/my/path/to/pos/Class3.class
build/war/WEB-INF/classes/my/path/to/pos/Class4.class
build/war/WEB-INF/classes/my/path/to/pos/Class5.class
build/war/WEB-INF/classes/my/path/to/pos/Class6.class
...

他の同様のコピー操作はすべて正常に機能しているように見えました。

4

1 に答える 1

0

ええと、結局のところ、答えは後から考えると非常に明白でした。

元の質問では、簡潔にするために、ターゲットからいくつかのタスクを省略しました。どうやら、私はすべきではありませんでした。

より完全なスニペットは次のようになります。

    ...
    <mkdir dir="${web.build.war.dir}"/>
    <copy todir="${web.build.war.dir}">
        <fileset dir="${web.src.web.dir}">
            <exclude name="**/pos/**"/>
            <exclude name="security/**"/>
        </fileset>
    </copy>

    <mkdir dir="${web.build.war.dir}/WEB-INF/classes"/>
    <copy todir="${web.build.war.dir}/WEB-INF/classes">
        <fileset dir="${web.build.classes.dir}">
            <exclude name="**/pos/**" />
        </fileset>
    </copy>
    ...

最初のコピー タスクは、すべてのリソースを Web リソースの開発用コピーからwar-to-beフォルダーにコピーします。

私は Eclipse IDE を使用していましたが、Java クラスを${web.src.web.dir}/WEB-INF/classesフォルダーにビルドするようにプロジェクトが構成されていたため、最初のタスクは単にすべてのクラスを war フォルダーにコピーしたため、次のコピー タスクの除外フィルターは効果がありませんでした。

于 2013-04-03T09:14:27.860 に答える