Плагин наследования jaxb2 не расширяет класс в /src/test/javaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Плагин наследования jaxb2 не расширяет класс в /src/test/java

Сообщение Anonymous »

Я работаю над проектом Java/Maven и использую плагин наследования jaxb2, чтобы определить родительские классы для Java-классов, сгенерированных xjc.
У меня есть этот xsd:















input.generation.common.IXmlHasListedElementsWithStartTime


input.generation.common.XmlAbstractTestThingWithListedElementWithStartTime




















input.generation.IHasStartTime









Он генерирует класс XmlTestThing расширяет XmlAbstractTestThingWithListedElementWithStartTime реализует IXmlHasListedElementsWithStartTime.
Конечная цель состоит в том, чтобы интерфейс определял простой метод, который дает правильную версию XmlTestThing, учитывая date.
Вот проблема: когда я выполняю чистую установку mvn в своем проекте, процесс завершается сбоем из-за ошибок компиляции в моей IDE (eclipse). Проблема в том, что сгенерированный класс XmlTestThing не может найти своего абстрактного родительского элемента XmlAbstractTestThingWithListedElementWithStartTime. У него нет проблем с поиском интерфейса.
Однако обновление проекта просто показывает, что в eclipse нет проблем с компиляцией для XmlTestThing: maven не может найти импорт, а eclipse может.
Сгенерированный класс находится в target/generated-test-sources.
Интерфейс, который нужно реализовать, находится в src/main/java
Класс, который нужно расширить, находится в src/test/java.
Я немного протестировал это и обнаружил следующее:
  • если расширяемый класс находится в src/main/java, то все работает
  • если расширяемый класс находится в src/test/java, eclipse может его найти, но maven сообщает об ошибке компиляции, поскольку не может найти его в целевых/сгенерированных-тестовых источниках.
Очевидно, maven может найти интерфейс в /src/main/java, но не родительский класс в /src/test/java. Или целевые/генерированные-тестовые-источники не имеют доступа к src/test/java?
Дополнительная информация:
Это часть pom.xml, упорядочивающая тестовые ресурсы:


org.codehaus.mojo
build-helper-maven-plugin
3.4.0


add-test-source
generate-test-sources

add-test-source




${project.build.directory}/generated-test-sources/java/






а это конфигурация генерации класса в pom.xml:

org.jvnet.jaxb2.maven2
maven-jaxb2-plugin
0.15.3

src/test/resources
${project.build.directory}/generated-test-sources/java
true
false
true

-Xinheritance



org.jvnet.jaxb2_commons
jaxb2-basics
0.11.1





input

generate



testInput.xsd


testInput.xjb






Этот xjb добавляет префикс к именам классов:














И это будет тестируемый входной XML-файл:













Подробнее здесь: https://stackoverflow.com/questions/797 ... -test-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»