Maven没有看到测试类
我对maven有问题。当我尝试编译测试类(mvn test-compile
)时,它无法找到测试类中使用的测试类。例如,类UserTest
无法编译,因为编译器无法找到正在UserTest
类中使用的类User
。在test-compile
阶段,问题很可能出现在不包含目标文件夹的类路径中,这很奇怪,因为我认为maven确实包含了它。Maven没有看到测试类
如果有人有任何想法如何解决这个问题,我会很感激。
pom.xml文件可以在这里找到http://github.com/tomasherman/JBTBackup/blob/master/pom.xml,就像项目的其余部分一样。
Maven的输出如下:
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building JBTBackup Maven Webapp
[INFO] task-segment: [test-compile]
[INFO] ------------------------------------------------------------------------
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 3 resources
[WARNING] While downloading hibernate:hibernate:3.0.5
This artifact has been relocated to org.hibernate:hibernate:3.0.5.
[INFO] [compiler:compile {execution: default-compile}]
[INFO] No sources to compile
[INFO] [resources:testResources {execution: default-testResources}]
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/arg/workspace/JBTBackup/src/test/resources
[INFO] [sql:execute {execution: add-test-data}]
[INFO] Executing file: /tmp/pre-test-editdb.1278025605sql
[INFO] 0 of 0 SQL statements executed successfully
[INFO] [compiler:testCompile {execution: default-testCompile}]
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 2 source files to /home/arg/workspace/JBTBackup/target/test-classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[26,15] cannot find symbol
symbol : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest
[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[27,15] cannot find symbol
symbol : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest
[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[28,15] cannot find symbol
symbol : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest
[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/BTFileTest.java:[23,15] cannot find symbol
symbol : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.BTFileTest
[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/BTFileTest.java:[25,15] cannot find symbol
symbol : class BTFile
location: class org.tomasherman.JBTBackup.Resource.Entity.BTFileTest
[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[26,29] cannot find symbol
symbol : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest
[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[27,29] cannot find symbol
symbol : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest
[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[28,29] cannot find symbol
symbol : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest
[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/BTFileTest.java:[23,29] cannot find symbol
symbol : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.BTFileTest
[ERROR] /home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/BTFileTest.java:[25,31] cannot find symbol
symbol : class BTFile
location: class org.tomasherman.JBTBackup.Resource.Entity.BTFileTest
[INFO] 10 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[26,15] cannot find symbol
symbol : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest
/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[27,15] cannot find symbol
symbol : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest
/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[28,15] cannot find symbol
symbol : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest
/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/BTFileTest.java:[23,15] cannot find symbol
symbol : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.BTFileTest
/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/BTFileTest.java:[25,15] cannot find symbol
symbol : class BTFile
location: class org.tomasherman.JBTBackup.Resource.Entity.BTFileTest
/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[26,29] cannot find symbol
symbol : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest
/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[27,29] cannot find symbol
symbol : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest
/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/UserTest.java:[28,29] cannot find symbol
symbol : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.UserTest
/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/BTFileTest.java:[23,29] cannot find symbol
symbol : class User
location: class org.tomasherman.JBTBackup.Resource.Entity.BTFileTest
/home/arg/workspace/JBTBackup/src/test/java/org/tomasherman/JBTBackup/Resource/Entity/BTFileTest.java:[25,31] cannot find symbol
symbol : class BTFile
location: class org.tomasherman.JBTBackup.Resource.Entity.BTFileTest
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Thu Aug 26 12:54:37 CEST 2010
[INFO] Final Memory: 17M/172M
[INFO] ------------------------------------------------------------------------
感谢所有的意见,托马斯·赫尔曼
您必须将您的应用程序类移动到src/main/java/...而不是src/main/resources,因为Maven会假设(约定优于配置)您的java类位于src/main/java中。这意味着他们永远不会被编译。
你是对的,先生...愚蠢的我不注意到我自己,谢谢! – Arg 2010-08-26 11:54:02
你尝试调用MVN编译测试编译,或者只是MVN干净安装? Maven在已经无法编译的类
注进行测试:
[INFO] [compiler:compile {execution: default-compile}]
[INFO] No sources to compile
而@戈皮的评论解释了为什么发生这种情况。您应该将您的代码置于src/main/java
之下,以便Maven默认查看它。
您的UserTest.java
文件中的User
类没有明确的导入,这意味着应位于org.tomasherman.JBTBackup.Resource.Entity
包中的某处。
但是,src/test/java/org/tomasherman/JBTBackup/Resource/Entity
或src/main/java/org/tomasherman/JBTBackup/Resource/Entity
中没有这样的文件。
我无法在您的POM文件中看到任何可能产生此类的内容(如hbm2java)。也许你忘了提交它?
在你的github仓库中,我没有找到一个src/main/java文件夹,你的所有代码应该驻留在那里。此外,如果你在本地有这个代码,那么首先尝试'mvn compile' – Gopi 2010-08-26 11:08:10