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

时间:2011-01-15 21:17:41

标签: 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测试?

2 个答案:

答案 0 :(得分: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>

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

答案 1 :(得分:0)

我不明白这个问题。你在问如何设置默认目标吗?选择执行时要运行的目标,还是不知道如何编写build.xml文件?真的不是那么难。请参阅http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.htmlhttp://ant.apache.org/manual/