Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java maven错误:包org.junit不存在_Java_Maven 3_Junit4 - Fatal编程技术网

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

Java maven错误:包org.junit不存在,java,maven-3,junit4,Java,Maven 3,Junit4,我试图用maven创建javadoc,但失败了。执行验证时,它也会失败 mvn verify 我得到以下错误: (...) [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERR

我试图用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>
代码很好,因为在我现在无法访问的笔记本电脑中,我运行:

mvn javadoc:javadoc
mvn verify

没有问题,测试也可以在EclipseIDE中工作。

好的,您只为
test
类声明了
junit
依赖关系(那些在
src/test/java
中的类,但是您试图在
main
类中使用它(那些在
src/main/java
中的类)


不要在主类中使用它,或者删除
test

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

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

朱尼特

如果您正在使用Eclipse,请在junit上查看POM依赖项和Eclipse buildpath依赖项

如果选择use Junit4 eclipse create TestCase using org.junit package,但POM默认使用Junit3(junit.framework package),这就是原因,如下图所示:


只需将POM文件中的Junit依赖项更新为Junit4,或将Eclipse构建路径更新为Junit3。在我的例子中,罪魁祸首是没有区分POM.xml(由Eclipse maven项目生成)中的main和test sources文件夹


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

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

src/main/java
src/test/java
....

damn!!!这就解决了verify goal的问题。现在我在javadoc上还有其他问题,但是关于Latex。所以问题解决了!!!谢谢@andrew当我从POM文件中删除范围测试时,我的测试用例永远不会执行,尽管我以前没有遇到任何错误(如上所述)。我的测试也在src/test/java下,我有几个lib在src/main/java中。如果子模块不在测试层次结构中使用junit,则可以使用test定义父pom的范围,并使用compile定义子pom。我想知道为什么在使用junit依赖项的测试范围时会出现这种情况:…/src/test/java/com/…RuleTest.java:[3,24]包org.junit不存在相同的症状,不同的原因:好吧,我两年前问过这个问题,现在我不再做它了,至少现在是这样。但是谢谢你的回答。我不知道我是否必须以某种方式将它设置为关闭。@dwjohnston太好了!!我不与maven合作,但很高兴看到我的问题帮助了其他人;)也请向格鲁巴特咨询答案。:)这是一个糟糕的解决方案,因为您忽略了此依赖项部分中的
test
标记。这意味着测试将被编译到您的生产代码中。删除源目录配置对我来说很有效。但你的评论起了作用。
<build>
    <sourceDirectory>src</sourceDirectory>
    ....
</build>
<build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <testSourceDirectory>src/test/java</testSourceDirectory>
    ....
</build>