Ant没有在其lib目录中识别JUnit jar?

时间:2011-09-12 17:43:22

标签: ant jar junit javac

我在Windows XP下使用Cygwin,我正在尝试让Ant使用JUnit而不编写任何类路径条目。 JUnit的文档说我可以:

  

将junit.jar和ant-junit.jar放在ANT_HOME / lib中。

我在JUnit in Action中的便利副本说:

  

您可能已经注意到没有将JUnit JAR显式添加到类路径中。请记住,在安装Ant时,您将JUnit JAR文件复制到$ {ANT_HOME} / lib目录以使用junit Ant任务。因为junit.jar已经在您的类路径中,所以您无需在javac任务中指定它来编译测试。

$ ANT_HOME设置为Ant安装目录。在lib子目录中,我看到ant-junit.jar(与Ant一起安装)和junit-4.9.jar(由我复制)。好像没事吧?但是测试编译步骤失败了:

[javac] Compiling 1 source file to E:\tools\ctg\bin\test
[javac] E:\tools\ctg\src\test\TestAll.java:3: package org.junit does not exist
[javac] import org.junit.*;

等等。我尝试将junit-4.9.jar重命名为junit.jar。没有快乐。我偷看了jar文件,看到包里面确实存在包。事实上,如果我在Ant类路径中明确包含那个jar文件,那么编译工作正常。

的Bleh。什么可能是错的?感谢。

编辑:根据要求,这是javac目标:

<path id="classpath">
   <pathelement location="${app-bin}"/>
   <pathelement location="${test-bin}"/>
   <!--pathelement location="${junit-bin}"/-->
</path>

<target name="compile-test" depends="compile-app">
   <javac srcdir="${test-src}"
          destdir="${test-bin}"
          source="${java}"
          target="${java}"
          debug="on"
          includeantruntime="false">
      <compilerarg value="-Xlint"/>
      <classpath refid="classpath"/>
   </javac>
</target>

请注意,JUnit二进制文件已注释掉。我的目标是删除它并使编译工作。

2 个答案:

答案 0 :(得分:6)

includeantruntime="false"告诉lib目录中的ant to not include the libs进行编译。

您必须将jar添加到类路径中,您将提供给javac目标。或者将属性设置为true。

答案 1 :(得分:0)

尝试从junit jar文件名中删除版本号 即将junit-4.9.jar重命名为junit.jar