带有排斥模式的蚂蚁复制似乎不起作用



下面的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
...

嗯,最后,事后看来,答案是显而易见的。

在最初的问题中,为了简洁起见,我省略了目标中的一些任务。看来,我不应该。

更完整的代码片段应该是这样的:

    ...
    <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文件夹中,因此下一个复制任务中的排除过滤器不起作用。

相关内容

  • 没有找到相关文章

最新更新