Maven не видит проверенных классов - PullRequest
0 голосов
/ 26 августа 2010

У меня проблема с Maven. Когда я пытаюсь скомпилировать тестовые классы (mvn test-compile), он не находит проверенные классы, используемые в тестовых классах. Например, класс UserTest не может быть скомпилирован, поскольку компилятор не может найти класс User, который используется внутри класса UserTest. Скорее всего, проблема в пути к классам, не включающем целевую папку во время фазы test-compile, что странно, потому что я думал, что 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] ------------------------------------------------------------------------

Спасибо за все комментарии, Томас Герман

Ответы [ 4 ]

4 голосов
/ 26 августа 2010

Вы должны переместить свои классы приложений в src / main / java / ... вместо src / main / resources, потому что Maven предполагает (соглашение по конфигурации), что ваши java-классы расположены в src / main / java.Это означает, что они никогда не будут скомпилированы.

2 голосов
/ 26 августа 2010

Обратите внимание, что Maven уже не смог скомпилировать классы для тестирования:

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

И комментарий @ Гопи объясняет, почему это произошло. Вы должны поместить свой код под src/main/java, чтобы Maven мог видеть его по умолчанию.

2 голосов
/ 26 августа 2010

Нет явного импорта для класса User в вашем файле UserTest.java, что подразумевает, что он должен быть где-то в пакете org.tomasherman.JBTBackup.Resource.Entity.

Однако неттакой файл либо в src/test/java/org/tomasherman/JBTBackup/Resource/Entity, либо в src/main/java/org/tomasherman/JBTBackup/Resource/Entity.

Я не вижу ничего в вашем файле POM для потенциальной генерации этого класса (например, hbm2java).Может быть, вы забыли совершить это?

1 голос
/ 26 августа 2010

Вы пытались вызвать mvn compile test-compile или просто mvn clean install?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...