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] ------------------------------------------------------------------------ 

感谢所有的意见,托马斯·赫尔曼

+0

在你的github仓库中,我没有找到一个src/main/java文件夹,你的所有代码应该驻留在那里。此外,如果你在本地有这个代码,那么首先尝试'mvn compile' – Gopi 2010-08-26 11:08:10

您必须将您的应用程序类移动到src/main/java/...而不是src/main/resources,因为Maven会假设(约定优于配置)您的java类位于src/main/java中。这意味着他们永远不会被编译。

+0

你是对的,先生...愚蠢的我不注意到我自己,谢谢! – 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/Entitysrc/main/java/org/tomasherman/JBTBackup/Resource/Entity中没有这样的文件。

我无法在您的POM文件中看到任何可能产生此类的内容(如hbm2java)。也许你忘了提交它?