У меня есть проект A, который зависит от проекта B, который зависит от проекта C. Проект C зависит от Hibernate (точнее, org.hibernate: hibernate-core: 3.6.8.Final). Проект B не зависит от артефакта гибернации. Но проект А зависит от этого артефакта, но только для модульных тестов, поэтому я использую область тестирования. Когда я пытаюсь построить, проекты C и B правильно построены и установлены, но я получаю следующее сообщение об ошибке во время компиляции:Странная ошибка компиляции с Maven
Failure executing javac, but could not parse the error: myPackage\MyClass.class(myPackage:MyClass.class): warning: Cannot find annotation method 'value()' in type 'org.hibernate.annotations.Cascade': class file for org.hibernate.annotations.Cascade not found An exception has occurred in the compiler (1.6.0_27). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you. com.sun.tools.javac.code.Symbol$CompletionFailure: class file for org.hibernate.annotations.CascadeType not found
Я точен, что MyClass принадлежит к проекту C и импорт org.hibernate.annotations.Cascade , И C успешно компилируется, поэтому он может найти указанный класс. Но здесь кажется, что файл класса не может быть найден во время компиляции A. Я думал, что, возможно, зависимость от тестовой области от Hibernate может отменить зависимость Hibernate от C? Но я понятия не имею.
Кроме того, если я изменю область зависимости в проекте A от теста для компиляции, проблема исчезнет.
Спасибо за вашу помощь
Не уверен, что вы хотите от нас, точно; вы обнаружили ошибку компилятора, и вы должны сообщить об этом. –
Является ли это ошибкой компилятора? не ошибка компиляции из-за проблем с моим кодом? –
Он говорит прямо в сообщении, которое вы цитируете: «В компиляторе произошло исключение ... Пожалуйста, напишите ошибку ...» Так что да, это не ваша вина! –