85

我正在尝试使用 maven 创建 javadoc,但它失败了。进行验证时也会失败。

mvn verify

我收到以下错误:

(...)
    [INFO] -------------------------------------------------------------
    [ERROR] COMPILATION ERROR : 
    [INFO] -------------------------------------------------------------
    [ERROR] /home/miquel/creaveu/createOmegaMatrix/src/main/java/edu/url/salle/gtm/hnm/dataStructures/HFrame.java:[6,23]
package org.junit does not exist
    [ERROR] /home/miquel/creaveu/createOmegaMatrix/src/main/java/edu/url/salle/gtm/hnm/dataStructures/HFrame.java:[6,0]
static import only from classes and interfaces
    (···)

在我的 pom.xml 文件中,我有以下几行:

<dependency>
  <groupId>org.junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.8.2</version>
  <scope>test</scope>
</dependency>

我的本地存储库包含 junit jar 文件:

miquel@ubuntu:~/creaveu/createOmegaMatrix$ ls -l /home/miquel/.m2/repository/org/junit/junit/4.8.2/
total 248
**-rw-r--r-- 1 miquel miquel 237344 2012-09-13 11:01 junit-4.8.2.jar**
-rw-r--r-- 1 miquel miquel    236 2012-09-13 11:13 junit-4.8.2-javadoc.jar.lastUpdated
-rw-r--r-- 1 miquel miquel      0 2012-09-13 11:13 junit-4.8.2-javadoc.jar-not-available
-rw-r--r-- 1 miquel miquel    458 2012-09-12 18:35 junit-4.8.2.pom
-rw-r--r-- 1 miquel miquel    236 2012-09-13 11:13 junit-4.8.2-sources.jar.lastUpdated
-rw-r--r-- 1 miquel miquel      0 2012-09-13 11:13 junit-4.8.2-sources.jar-not-available
-rw-r--r-- 1 miquel miquel    163 2012-09-13 11:22 _maven.repositories
miquel@ubuntu:~/creaveu/createOmegaMatrix$

代码很好,因为在我现在无法访问的笔记本电脑中,我运行:

mvn javadoc:javadoc
mvn verify

没有问题,并且测试也可以在 Eclipse IDE 中运行。

4

4 回答 4

165

好的,你已经声明了只junit对类的依赖test(那些在src/test/java但你试图在main类中使用它(那些在 中src/main/java)。

要么不要在主类中使用它,要么删除<scope>test</scope>.

于 2012-09-13T09:46:16.760 回答
35

我通过插入以下代码行来修复此错误:

<dependency>
  <groupId>junit</groupId>     <!-- NOT org.junit here -->
  <artifactId>junit-dep</artifactId>
  <version>4.8.2</version>
  <scope>test</scope>
</dependency>

进入 <dependencies> 节点。

更多细节参考: http: //mvnrepository.com/artifact/junit/junit-dep/4.8.2

于 2012-09-29T01:03:02.713 回答
15

如果您使用的是 Eclipse,请注意您的 POM 依赖项和 Eclipse buildpath 对 junit 的依赖项

如果您选择使用 Junit4 eclipse 创建 TestCase 使用 org.junit 包,但您的 POM 默认使用 Junit3(junit.framework 包),这就是原因,如下图所示:

见 JUNIT 冲突

只需将 POM 文件中的 Junit 依赖项更新为 Junit4 或将 Eclipse BuildPath 更新为 Junit3

于 2014-07-04T06:49:53.447 回答
8

就我而言,罪魁祸首是没有区分 pom.xml 中的主要和测试源文件夹(由 eclipse maven 项目生成)

<build>
    <sourceDirectory>src</sourceDirectory>
    ....
</build>

如果您在 pom 文件中覆盖默认源文件夹设置,则必须显式设置主要和测试源文件夹!!!!

<build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <testSourceDirectory>src/test/java</testSourceDirectory>
    ....
</build>
于 2019-01-24T09:37:38.430 回答