Есть ли способ настроить плагин JAXB для добавления "get" для метода логического get вместо "is"
Я использовал ниже JAXB
плагин в моем проекте
<groupId>com.sun.tools.xjc.maven2</groupId>
<artifactId>maven-jaxb-plugin</artifactId>
<version>1.1.1</version>
Который добавляет "get" для логического элемента. Но при переходе на новый плагин
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.12.3</version>
Я получаю "есть" в методе получения boolean
элементы типа. Но код ожидает старую подпись. Например
Предположим, у нас есть следующие элементы типа boolean
,
а) файл создан.
Новый плагин сгенерировал следующую подпись метода в столбце Сгенерировано. Я перечислил ожидаемый метод в столбце Ожидаемый.
Generated Expected
boolean isFileCreated() boolean getFileCreated()
Есть некоторые фрагменты кода, которые не поддерживаются нашей командой, поэтому изменение кода вызова не в наших руках. Пожалуйста, предложите, если есть способ настроить этот плагин так, чтобы он генерировал геттер для boolean
как мы и ожидаем.
Заранее спасибо.
Вот конфигурация плагина JAXB внутри pom.xml
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.12.3</version>
<executions>
<execution>
<id>kyc</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<!-- Added for generating getter for boolean element in XSDs with prefix "get" starts-->
<enableIntrospection>true</enableIntrospection>
<!-- Added for generating getter for boolean element in XSDs with prefix "get" ends-->
<generatePackage>XXX.XXX.APackage</generatePackage>
<schemaDirectory>src/main/resources/XXX/</schemaDirectory>
<generateDirectory>${project.build.directory}/generated-sources/XXX/generateDirectory>
<verbose>true</verbose>
</configuration>
</execution>
</executions>
</plugin>
После внесения этого изменения я по-прежнему получаю добавленное "is" имя свойства типа boolean.
1 ответ
Вы могли бы использовать enableIntrospection
опция в плагине maven. Посмотреть здесь
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.12.3</version>
<executions>
<execution>
<id>xjc1</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<args>
<arg>-Xannotate</arg>
<arg>-nv</arg>
<arg>-Xnamespace-prefix</arg>
</args>
<extension>true</extension>
<schemas>
<schema>
<fileset>
<directory>${basedir}/src/main/resources/schema</directory>
<includes>
<include>*.xsd</include>
</includes>
</fileset>
</schema>
</schemas>
<enableIntrospection>true</enableIntrospection>
<debug>true</debug>
<verbose>true</verbose>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version>0.6.0</version>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>0.6.0</version>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-namespace-prefix</artifactId>
<version>1.1</version>
</plugin>
</plugins>
</configuration>
</execution>
</executions>
</plugin>
используя элемент <xs:element minOccurs="0" name="flag" type="xs:boolean" />
<enableIntrospection>false</enableIntrospection>
сгенерированный класс public Boolean isFlag() {
вместо
<enableIntrospection>true</enableIntrospection>
сгенерированный класс public Boolean getFlag() {