Ant-Note-编译多个源并且在其中排除一部分文件
2018-08-27
Ant
在开发过程中需要用到apache ant来编译源码, 在使用过程中遇到一个比较特殊的问题: 需要编译多个源目录并且在其中要排除掉部分文件. 编译多个源需要用到javac标签下面的src标签, 但如果使用两个src标签如:1
2
3
4<javac ...>
<src path="src1">
<src path="src2">
</javac>
则在下面加入exclude标签时, 不会将exclude下的文件排除在外, 如:1
2
3
4
5<javac ...>
<src path="src1">
<src path="src2">
<exclude name="package/dir/srccode.java">
</javac>
由于exclude使用的是相对路径, 原因可能是因为多路径模式下无法判断该exclude标签属于哪个src, 有懂的兄弟请指出
为了exclude有效, 应该使用以下结构:1
2
3
4
5
6<javac ...>
<src path="src">
<include name="src1">
<include name="src2">
<exclude name="package/dir/code.java">
</javac>`
用一个更大的路径作为主src, 而将需要编译的src放到include里面, 这样exclude就是单个src下面的相对路径了, 经测试, 编译成功