2010-08-26 5 views
0

J'ai un problème avec maven. Lorsque j'essaie de compiler des classes de test (mvn test-compile), il ne parvient pas à trouver les classes testées utilisées dans les classes de test. Par exemple la classe UserTest ne peut pas être compilée car le compilateur ne peut pas trouver la classe User qui est utilisée dans la classe UserTest. Le problème est le plus probable dans le chemin de la classe ne comprenant pas le dossier cible pendant la phase test-compile, ce qui est bizarre parce que je pensais que maven l'incluait.Maven ne voit pas les classes testées

Si quelqu'un avait des idées pour résoudre ce problème, je serais reconnaissant.

Le fichier pom.xml peut être trouvé ici http://github.com/tomasherman/JBTBackup/blob/master/pom.xml, tout comme le reste du projet.

La sortie Maven est la suivante:

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

Merci pour tous les commentaires, Tomas Herman

+0

Dans votre référentiel github, je n'ai pas trouvé de dossier src/main/java où tout votre code devrait résider. Aussi si vous avez ce code localement, alors essayez d'abord 'mvn compile' – Gopi

Répondre

4

Vous devez déplacer vos classes d'application vers src/main/java/... au lieu de src/main/resources, car Maven suppose (convention sur configuration) que vos classes Java se trouvent dans src/main/java. Cela signifie qu'ils ne seront jamais compilés.

+0

vous avez raison, monsieur ... stupide de ne pas remarquer que moi-même, merci! – Arg

1

Avez-vous essayé d'invoquer mvn compiler test de décompiler, ou tout simplement installer mvn clean?

2

Notez que Maven a déjà échoué à compiler les classes à tester:

[INFO] [compiler:compile {execution: default-compile}] 
[INFO] No sources to compile 

Et @ commentaire de Gopi explique pourquoi cela est arrivé. Vous devriez mettre votre code sous src/main/java pour Maven pour le voir par défaut.

2

Il n'y a pas d'importation explicite pour la classe User dans votre fichier UserTest.java, ce qui implique que devrait être quelque part dans le paquet org.tomasherman.JBTBackup.Resource.Entity. Cependant, il n'existe aucun fichier de ce type dans src/test/java/org/tomasherman/JBTBackup/Resource/Entity ou src/main/java/org/tomasherman/JBTBackup/Resource/Entity.

Je ne vois rien dans votre fichier POM pour générer potentiellement cette classe (comme hbm2java). Peut-être avez-vous oublié de le commettre?

Questions connexes