【问题标题】:Simple ant build script that supports src/ and test/?支持 src/ 和 test/ 的简单 ant 构建脚本?
【发布时间】:2011-01-15 21:17:40
【问题描述】:

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

源/ com/foo/ com/酒吧/ test/ -- src/ 的镜像,包含所有 *Test.java 文件。 com/foo/ com/酒吧/ lib/ -- 所有 Java 库,包括 junit 4。

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

【问题讨论】:

    标签: ant


    【解决方案1】:

    我为每个目标定义了<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 与您的特定目录结构一起使用确实需要一些工具知识,不要指望您会很容易找到适合您确切要求的现成示例。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 看起来是假设所有的 Test.java 文件都在 src 目录中?
      • 这个问题很容易理解。真的!没有什么是那么难的。这只是投入一些时间的问题。我不了解 ant,但在高层次上,我知道需要完成什么,并且我可以在接下来的几个小时内继续使用它,谷歌搜索任何错误消息。不过,我猜这个问题已经解决了上千次了。
      • 该文件设置在哪里?你在哪里设置该属性?您可以拥有多个属性,对吗? (并查看另一个答案)。我认为答案就是学习如何编写自己的构建文件。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-12
      • 2011-03-06
      • 1970-01-01
      相关资源
      最近更新 更多