以下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
...
其他类似的复制操作似乎都运行得很好。
答案 0 :(得分: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文件夹,因此在下一个复制任务中将排除过滤器复制没有效果。