简单的ant构建脚本,支持src /和test /?

4 ant

目前我使用IDE进行所有构建和单元测试.现在我需要使用蚂蚁.我找到了一些简单的ant build.xml脚本,但它们不支持单独的Junit测试/目录.我的项目结构如下:

src/
  com/foo/
  com/bar/

test/ -- Mirror of src/, with all *Test.java files.
  com/foo/ 
  com/bar/

lib/  -- All Java libs, including junit 4.

如何构建一个构建我的src /和test/Java类的小蚂蚁脚本然后运行我所有的JUnit测试?

Car*_*bés 6

<path>为每个目标定义元素.

这是我的构建文件的摘录,你必须调整一些路径和属性,但你可以得到这个想法:

<path id="src.path">    
    <pathelement path="src/"/>
</path>

<path id="compile.path">
    <path refid="src.path"/>
    <fileset dir="lib/">
        <include name="**/*.jar"/>
    </fileset>
</path>

<path id="unit.test.path">
    <path refid="compile.path"/>
    <pathelement path="test/"/>
</path>

<target name="compile">
    <javac destdir="bin">
        <src path="src"/>
        <classpath refid="compile.path"/>
    </javac>
</target>

<target name="compileUnitTests" depends="compile">
    <javac srcdir="test/" destdir="bin">
        <classpath refid="unit.test.path"/>
    </javac>
</target>

<target name="runUnitTests" depends="compileUnitTests">
    <junit printsummary="yes" haltonfailure="no">
    <jvmarg value="-Dfile.encoding=UTF-8"/>
        <classpath refid="unit.test.path"/>

        <formatter type="xml"/>

        <batchtest fork="yes" todir="${this.report}">
            <fileset dir="test">
                <include name="${test.pattern}"/>
                <exclude name="**/AllTests.class"/>
                <exclude name="**/*$*.class"/>
            </fileset>
        </batchtest>
    </junit>
</target>
Run Code Online (Sandbox Code Playgroud)

如果您需要根据自己的需求进行优化,就像cotton.m所说,请阅读ant任务文档.将ant与您的特定目录结构一起使用确实需要一些工具知识,不要指望您能够轻松找到符合您确切要求的现成示例.