Maven没有找到org.junit,即使它位于依赖项中
我想在我的小项目中添加一个测试(请注意我从代码中删除了一些位并更改了包名,所以如果你看到任何错误,可能不是这个;)):
package my.pckg; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; public class SignedRequestCallbackTest { @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void testCorrectSignedRequest() { assertTrue(false); } }
(我也尝试从TestCase扩展以删除静态导入,但它没有帮助)
运行mvn test
它显示一个错误,它无法找到org.junit:
[INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Test Server 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ server --- [WARNING] Using platform encoding (MacRoman actually) to copy filtered resources, ie build is platform dependent! [INFO] Copying 0 resource [INFO] [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ server --- [WARNING] File encoding has not been set, using platform encoding MacRoman, ie build is platform dependent! [INFO] Compiling 9 source files to /Users/michael/Projects/fbmuc/server/target/classes [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[4,27] package org.junit does not exist [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[6,16] package org.junit does not exist [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[7,16] package org.junit does not exist [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[8,16] package org.junit does not exist [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[14,9] cannot find symbol symbol : class Before location: class my.pckgSignedRequestCallbackTest [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[18,9] cannot find symbol symbol : class After location: class my.pckgSignedRequestCallbackTest [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[22,9] cannot find symbol symbol : class Test location: class my.pckgSignedRequestCallbackTest [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[24,12] cannot find symbol symbol : method assertTrue(boolean) location: class my.pckgSignedRequestCallbackTest [INFO] 9 errors [INFO] ------------------------------------------------------------- [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.161s [INFO] Finished at: Fri Feb 22 18:02:37 CET 2013 [INFO] Final Memory: 8M/81M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project server: Compilation failure: Compilation failure: [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[4,27] package org.junit does not exist [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[4,4] static import only from classes and interfaces [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[6,16] package org.junit does not exist [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[7,16] package org.junit does not exist [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[8,16] package org.junit does not exist [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[14,9] cannot find symbol [ERROR] symbol : class Before [ERROR] location: class my.pckgSignedRequestCallbackTest [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[18,9] cannot find symbol [ERROR] symbol : class After [ERROR] location: class my.pckgSignedRequestCallbackTest [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[22,9] cannot find symbol [ERROR] symbol : class Test [ERROR] location: class my.pckgSignedRequestCallbackTest [ERROR] ~/code/src/test/java/my/pckg/SignedRequestCallbackTest.java:[24,12] cannot find symbol [ERROR] symbol : method assertTrue(boolean) [ERROR] location: class my.pckgSignedRequestCallbackTest [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
我的pom.xml看起来像这样:
4.0.0 com.example server 0.0.1-SNAPSHOT TestServer Test src org.apache.maven.plugins maven-compiler-plugin 2.3.2 1.6 1.6 maven-assembly-plugin jar-with-dependencies com.restfb restfb 1.6.11 com.google.code.gson gson 2.2.2 compile tigase tigase-server 5.2.0-SNAPSHOT commons-codec commons-codec 1.7 junit junit 4.11 test tigase Tigase repository http://maven.tigase.org tigase-snapshot Tigase repository http://build.xmpp-test.net/maven/ true
mvn依赖:树:
[INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Test Server 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ server --- [INFO] my.pckg:server:jar:0.0.1-SNAPSHOT [INFO] +- com.restfb:restfb:jar:1.6.11:compile [INFO] +- com.google.code.gson:gson:jar:2.2.2:compile [INFO] +- tigase:tigase-server:jar:5.2.0-SNAPSHOT:compile [INFO] | +- tigase:tigase-utils:jar:3.4.1-SNAPSHOT:compile [INFO] | \- tigase:tigase-xmltools:jar:3.4.3-SNAPSHOT:compile [INFO] +- commons-codec:commons-codec:jar:1.7:compile [INFO] \- junit:junit:jar:4.11:test [INFO] \- org.hamcrest:hamcrest-core:jar:1.3:test [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.240s [INFO] Finished at: Fri Feb 22 18:07:55 CET 2013 [INFO] Final Memory: 5M/81M [INFO] ------------------------------------------------------------------------
mvn版本:
Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100) Maven home: /usr/share/maven Java version: 1.6.0_41, vendor: Apple Inc. Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home Default locale: de_CH, platform encoding: MacRoman OS name: "mac os x", version: "10.8.2", arch: "x86_64", family: "mac"
请注意,我不是java或maven的专家,只是刚开始(尤其是maven)。 从我从其他文章和问题中看到的,我应该在src/test/java
,在src/main/java
“真正的”代码 – 我这样做了。
我也删除了整个〜/ .m2 /文件夹,它仍然无法正常工作。
我也运行了mvn test -X
但它没有帮助我。 如果我发布它请告诉我。
除非您有充分的理由,否则不应覆盖POM的
元素中的
设置。 此属性确定Maven查找非测试代码的位置。 此属性的默认值为src/main/java
。
属性设置测试代码的路径(默认为src/test/java
。通过将
设置为src
,Maven认为整个目录包含主应用程序代码。由于src
目录包含src/test/java
,Maven然后尝试编译您的测试代码作为主应用程序的一部分。
这很重要,因为在编译主应用程序时(在compile
阶段),Maven省略了与test
范围的依赖关系。 在主编译之后,测试代码在单独的阶段( test-compile
阶段)中编译。
因此,由于Maven尝试将测试代码编译为主应用程序的一部分,因此它省略了junit
依赖项,并且它们在类路径中不可用。 这里的解决方案是不在POM中指定
元素。
默认情况下,maven分别查看这些文件夹中的java和测试类 – src / main / java和src / test / java
当在源代码下使用测试类指定src并且在pom.xml中提到junit依赖的范围时,maven将找不到test-org.unit。
- 在Java中抛出exception
- 多个Java线程似乎锁定了同一个监视器?
- 如何在Java或python中获得endianess?
- 如何在Java中的Apache Spark中将DataFrame转换为Dataset?
- EclipseLinkJpaVendorAdapter而不是HibernateJpaVendorAdapter问题
- 双击提交按钮时如何避免两次插入两个相同的记录?
- 如何将文本文件内容导入Java应用程序中的JTextArea?
- java.lang.NoClassDefFoundError:sun / swing / plaf / synth / SynthUI
- 将大型XML文档从一种格式转换为另一种格式的最快速最佳方法