我的build.xml中有以下内容:
<target name="compile.baz" depends="init">
<javac destdir="${build.dir}/classes" debug="on">
<compilerarg value="-Xlint:deprecation"/>
<src>
<pathelement location="${src.dir}/com/foo/bar/baz/" />
<pathelement location="${src.dir}/com/foo/bar/quux/" />
<!-- Need to exclude ${src.dir}/com/foo/bar/quux/dontwant/ -->
</src>
<classpath refid="classpath.jars" />
</javac>
...
</target>
Run Code Online (Sandbox Code Playgroud)
这主要是我想要做什么,但(作为注释说)我不想要的文件中
${src.dir}/com/foo/bar/quux/dontwant/
通过该任务编译(但我想一切在${src.dir}/com/foo/bar/quux/
此任务中进行编译).
我是一个完整的蚂蚁n00b,文档对我没什么帮助.我看到有几个地方,它说有各种排除/排除元素/属性,但我能想到的每一个变化都没有效果或导致错误,如" blah不支持'exclude'属性".
Lau*_*ves 17
有几个人建议使用<exclude>
.这不符合我的任务指定方式.trashgod的答案链接到本页的第六个例子,它让我了解了如何重构我的任务规范.
看起来我的问题与我指定源文件的方式有关.而不是使用a中的<pathelement>
元素<src>
,如下所示:
<src>
<pathelement location="${src.dir}/com/foo/bar/baz/" />
<pathelement location="${src.dir}/com/foo/bar/quux/" />
</src>
Run Code Online (Sandbox Code Playgroud)
我转而使用<src>
带路径的单个,然后使用一组<include>
元素,如下所示:
<src path="${src.dir}" />
<include name="com/foo/bar/baz/**" />
<include name="com/foo/bar/quux/**" />
Run Code Online (Sandbox Code Playgroud)
这似乎在功能上相同,但与以下内容的使用兼容<exclude>
:
<exclude name="${src.dir}/com/foo/bar/quux/dontwant/**"/>
Run Code Online (Sandbox Code Playgroud)
(实际上,我很惊讶首先在那里工作的东西.)
May*_*gus 11
从我的实验中,您不应该包含要排除的文件的完整路径.这个不起作用:
Run Code Online (Sandbox Code Playgroud)<javac> (...> <exclude name="${src.dir}/com/foo/blah/blah1/FILENAME.java"/> (...) </javac>
但是这个确实:
Run Code Online (Sandbox Code Playgroud)<javac> (...> <exclude name="com/foo/blah/blah1/FILENAME.java"/> (...) </javac>
尝试
<javac>
(...>
<exclude name="${src.dir}/com/foo/bar/quux/dontwant/*" />
(...)
</javac>
Run Code Online (Sandbox Code Playgroud)
我不确定其余的,但<exclude/>
嵌套元素应该在Javac
任务中工作.见第六个例子.
附录:基于目录的任务**
中讨论了模式,包括符号.
<target name="compile.baz" depends="init">
<javac destdir="${build.dir}/classes" debug="on">
<compilerarg value="-Xlint:deprecation"/>
<src>
<pathelement location="${src.dir}/com/foo/bar/baz/" />
<pathelement location="${src.dir}/com/foo/bar/quux/" />
</src>
<exclude name="${src.dir}/com/foo/bar/quux/dontwant/**"/>
...
</javac>
...
</target>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
30874 次 |
最近记录: |