首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AntBuilder找不到包org.junit

AntBuilder找不到包org.junit
EN

Stack Overflow用户
提问于 2012-10-12 05:19:58
回答 3查看 6.5K关注 0票数 0

我使用"JUnit测试用例“新文件对话框将一些单元测试添加到Eclipse项目中的测试目录(与我的src目录平行)。我有两个构建器,默认的Java Builder和我添加的AntBuilder。Java Builder继续工作,但是AntBuilder在Eclipse中失败了。当我选择Project -> Build All时,它会显示以下内容:

代码语言:javascript
复制
Buildfile: C:\source\machine-paint\eclipse\machine-paint\src\build.xml

clean:
      [delete] Deleting directory C:\source\machine-paint\eclipse\machine-paint\build

compile:
       [mkdir] Created dir: C:\source\machine-paint\eclipse\machine-paint\build\classes
       [javac] Compiling 33 source files to C:\source\machine-paint\eclipse\machine-paint\build\classes
       [javac] C:\source\machine-paint\eclipse\machine-paint\test\stencil\BorderWalkerTest.java:3: error: package org.junit does not exist
       [javac] import static org.junit.Assert.*;
       [javac]                        ^

然后,在几个类似的错误之后,如下所示:

代码语言:javascript
复制
 [javac] C:\source\machine-paint\eclipse\machine-paint\test\stencil\BorderWalkerTest.java:8: error: incompatible types
       [javac]  @Test
       [javac]   ^
       [javac]   required: Annotation
       [javac]   found:    Test

这是我的构建文件。在这一点上,我实际上是在摸索,比如将classpath标记添加到javac命令中。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<project name="Builder" default="jar" basedir=".">
  <target name="clean">
    <delete dir="build"/>
  </target>

  <target name="compile" depends="clean">
    <mkdir dir="build/classes" />
    <javac srcdir="." destdir="build/classes" debug="true" includeantruntime="true">
      <classpath>
        <path id="org.junit" location="c:/eclipse/plugins/org.apache.ant_1.8.3.v20120321-1730/lib/junit.jar" />
      </classpath>
    </javac>
  </target>

  <target name="jar" depends="compile">
    <jar destfile="../../stencil.jar" basedir="build/classes">
      <manifest>
        <attribute name="Main-Class" value="stencil.Main" />
      </manifest>
    </jar>
    <copy file="../../stencil.jar" tofile="../../../robotsdoart/stencils/stencil.jar" />
  </target>

  <target name="run">
    <java jar="build/jar/stencil.jar" fork="true" />
  </target>
</project>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-12 05:46:55

尝试将srcdir更改为您的实际源目录,以便它不包含测试。

类似于:

代码语言:javascript
复制
<javac srcdir="src/" destdir="build/classes" debug="true" includeantruntime="true">
  <classpath>
    <path id="org.junit" location="c:/eclipse/plugins/org.apache.ant_1.8.3.v20120321-1730/lib/junit.jar" /> <!-- not sure if you need this -->
  </classpath>
</javac>
票数 2
EN

Stack Overflow用户

发布于 2012-10-12 05:41:44

尝试直接包含您的junit jar文件。还要确保JAR文件在该位置可用。

代码语言:javascript
复制
<javac 
   srcdir="." 
   destdir="build/classes" 
   debug="true" 
   includeantruntime="true"
   classpath="c:/eclipse/plugins/org.apache.ant_1.8.3.v20120321-1730/lib/junit.jar"
 />

或者将path元素定义为:

代码语言:javascript
复制
 <path id="lib.path.id">
    <fileset dir="c:/eclipse/plugins/org.apache.ant_1.8.3.v20120321-1730/lib" 
             includes="junit.jar"/>
 </path>

并在javac中使用与

代码语言:javascript
复制
<javac 
   srcdir="." 
   destdir="build/classes" 
   debug="true" 
   includeantruntime="true"
   classpathref="lib.path.id""
 />

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2020-06-23 19:59:16

创建一个path元素并在javac中引用该id会有所帮助。

代码语言:javascript
复制
<path id="lib.path.id.junit.jar">
    <fileset dir="${project-path}\lib" includes="*.jar" />
</path>

然后我使用classpathref在javac中引用了它。

代码语言:javascript
复制
<target name="compile" depends="copy" description="compile all the source files in both src and test directories and should store all the class files in the bin directory.">
    <javac destdir="bin" includes="*.java" classpathref="lib.path.id.junit.jar" includeantruntime="true" debug="true" >
        <src path="src" /> 
        <src path="test" />
    </javac>

</target>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12848688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档