java maven错误:包org.junit不存在

qc6wkl3g  于 2023-01-29  发布在  Java
关注(0)|答案(5)|浏览(220)

我尝试用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>

并且我的本地存储库包含junitjar文件:

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中工作。

jhiyze9q

jhiyze9q1#

好了,您只为test类声明了junit依赖关系(这些类在src/test/java中,但您试图在main类中使用它(这些类在src/main/java中)。
不要在主类中使用它,或者删除<scope>test</scope>

qmb5sa22

qmb5sa222#

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

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

转换成节点。
详情请参阅:http://mvnrepository.com/artifact/junit/junit-dep/4.8.2

d7v8vwbk

d7v8vwbk3#

如果您正在使用Eclipse,请注意您的POM依赖项和Eclipse构建路径对junit的依赖项
如果您选择使用Junit4 eclipse使用org.junit包创建TestCase,但您的POM默认使用Junit3(junit.framework包),这就是原因,如下图所示:

只需将POM文件中的Junit依赖项更新为Junit4,或将Eclipse构建路径更新为Junit3

u3r8eeie

u3r8eeie4#

在我的例子中,罪魁祸首是没有区分pom.xml中的main和test源文件夹(由eclipse maven项目生成)

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

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

<build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <testSourceDirectory>src/test/java</testSourceDirectory>
    ....
</build>
vq8itlhq

vq8itlhq5#

我通过使用上面的一些技巧和Stackoverflow上其他地方找到的其他想法的组合来解决这个问题。
通过Maven获取当前最新版本的Junit,方法是将其添加到我的***pom.xml***中

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.9.0-M1</version>
    <scope>test</scope>
</dependency>

pom.xml中为主代码和测试代码指定不同的源目录

<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>

然而,最重要的变化是我试图在我的***main***源代码中创建一些测试方法,这些测试方法包含这个import语句。

import org.junit.jupiter.api.Test;

当我***从主源文件中删除所有测试功能***时,它又开始正常工作了。
这会使代码更整洁,因为所有测试现在都与主构建明确分离。

相关问题