Ant-如何排除Java测试文件?
我想将Java代码从源文件夹复制到目标文件夹并进行编译,但需要排除一些测试代码。如何仅复制非测试代码?例如,我想包括Ant-如何排除Java测试文件?,java,ant,Java,Ant,我想将Java代码从源文件夹复制到目标文件夹并进行编译,但需要排除一些测试代码。如何仅复制非测试代码?例如,我想包括bb/app/lite2并排除bb/app/test1,bb/app/cg 我知道我可以使用exclude元素,但我不想编写太多的exclude模式。因此,我可以使用: 然后使用?鉴于您问题中提到的目录结构,听起来您所有的非测试代码都在目录bb/app/lite2中。在这种情况下,只要指定的源目录下出现bb/app/lite2,就可以按如下方式编写任务: <property
bb/app/lite2
并排除bb/app/test1
,bb/app/cg
我知道我可以使用exclude元素,但我不想编写太多的exclude模式。因此,我可以使用:
然后使用
?鉴于您问题中提到的目录结构,听起来您所有的非测试代码都在目录bb/app/lite2
中。在这种情况下,只要指定的源目录下出现bb/app/lite2
,就可以按如下方式编写
任务:
<property name="source.dir" location="${basedir}/src" />
<property name="target.dir" location="${basedir}/target" />
<copy todir="${target.dir}" overwrite="true">
<fileset dir="${source.dir}" includes="bb/app/lite2/**/*.java" />
</copy>
正如他在评论中提到的,另一个约定(可以与文件命名约定一起使用)是将测试代码放在单独的目录中。比如说,
src/java
test/src/java
src/main/java
src/test/java
<property name="source.dir" location="${basedir}/src/java" />
<property name="classes.dir" location="${basedir}/build/classes" />
<javac srcdir="${source.dir}" destdir="${classes.dir}"
classpathref="my.classpath" debug="on" deprecation="on" />
相关问题
src/main/java
中,另一个在src/test/java
中(我将留给读者来判断哪个是哪个)。您还可以将JAR中所需但不是java文件的资源放入src/main/resources
。如果工作不是全部在一个目录中,则可以更轻松地完成工作。否则,使用
和
子任务执行
命令。
<property name="source.dir" location="${basedir}/src" />
<property name="classes.dir" location="${basedir}/build/classes" />
<javac srcdir="${source.dir}" destdir="${classes.dir}"
includes="**/*.java" excludes="**/*Test.java"
classpathref="my.classpath" debug="on" deprecation="on" />
<property name="source.dir" location="${basedir}/src/java" />
<property name="classes.dir" location="${basedir}/build/classes" />
<javac srcdir="${source.dir}" destdir="${classes.dir}"
classpathref="my.classpath" debug="on" deprecation="on" />