#build #maven #compilation #jibx
#сборка #maven #Сборник #jibx
Вопрос:
У меня есть pom.xml который я использую для генерации исходных текстов из схемы, привязки и компиляции.
<!-- <plugin>
<groupId>org.jibx</groupId>
<artifactId>maven-jibx-plugin</artifactId>
<version>1.2.1.1</version>
<configuration>
<directory>src/main/resources/schema</directory>
</configuration>
<executions>
<execution>
<goals>
<goal>schema-codegen</goal>
</goals>
</execution>
</executions>
</plugin> -->
<plugin>
<groupId>org.jibx</groupId>
<artifactId>maven-jibx-plugin</artifactId>
<version>1.2.1.1</version>
<configuration>
<targetDirectory></targetDirectory>
<directory>src/main/resources/jibx</directory>
<includes>
<includes>*binding.xml</includes>
</includes>
<excludes>
<exclude>template-binding.xml</exclude>
</excludes>
<verbose>false</verbose>
</configuration>
<executions>
<execution>
<goals>
<goal>bind</goal>
</goals>
</execution>
<execution>
<id>compile-binding</id>
</execution>
</executions>
</plugin>
Итак, когда я пытаюсь сгенерировать .java и binding.xml Я раскомментировал первую часть и прокомментировал нижнюю. Это генерирует .java и binding.xml .
Теперь я копирую binding.xml для src/main/resources/jibx
и класса Java для com.models.response package
. Затем я запускаю цель привязки и компиляции, раскомментировав эти строки и прокомментировав верхнюю часть. Я мог видеть JiBX_bindingFactory.class
и ‘JiBX_bindingResponse_access.class ‘ в пакете ‘target.com.models.response’.
Проблема заключается в том, что когда я запускаю тестовый класс и пытаюсь отменить преобразование response inputstream в «Response.class «, Я получаю Exception in thread "main" org.jibx.runtime.JiBXException: JiBx Exception: Unable to access binding information for class com.models.response.Response
ошибку.
Make sure the binding has been compiled
Пожалуйста, обратите внимание: я делаю все это в Eclipse, и в папке вывода по умолчанию отображается ‘/ build’. Я также попытался скопировать-вставить классы Jibx в папку «build». Все еще сталкиваюсь с той же проблемой.
Пожалуйста, помогите!!!!!
Спасибо
Ответ №1:
Две вещи.
Комментирование разделов pom не является идеальным способом разработки. Похоже, вы не привязали эти цели к соответствующим фазам жизненного цикла maven. например schema-codegen
к process-resources
Как указано в документации к плагину maven jibx, вам потребуется выполнить следующие цели, соответствующие тестам.
jibx:test-bind Runs the JiBX binding compiler on the test classes.
jibx:test-schema-codegen Generates Java test sources from XSD schemas.
Комментарии:
1. Теперь это исправлено. В Eclipse у меня была та же папка, что и у выходных классов, что и у POM.xml выводите папку и выполняйте сборку автоматически. Поэтому каждый раз, когда генерируются классы привязки JiBX, eclipse заменяет его только файлами java-класса.
2. @narayanan Что было исправлено для этого? Вы только что закончили изменением целевого каталога для вывода привязки JIBX?