Проблемы со сборкой JiBX Maven

#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?