Автоматически создаваемые Java-классы с помощью Maven JAXB и индивидуальной настройки - PullRequest
0 голосов
/ 29 декабря 2018

Я генерирую Java-классы из схемы XSD.Я использую JAXB 2.2.7 с maven.

в pom.xml, у меня есть профиль, и я использую его, когда XSD меняется.Действие build переписать все классы Java с нуля.Это профиль pom:

<profile>
    <id>CreateClasses</id>
    <build>
      <plugins>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>jaxb2-maven-plugin</artifactId>
          <version>2.3</version>
          <executions>
              <execution>
                  <goals>
                      <goal>xjc</goal>
                  </goals>
              </execution>
          </executions>
          <configuration>
              <schemaDirectory>${basedir}/src/main/resources/documentazione</schemaDirectory>
              <packageName>com.bsssrl.datafatturapa</packageName>
              <outputDirectory>${basedir}/src/main/java</outputDirectory>
              <clearOutputDir>true</clearOutputDir>
              <addGeneratedAnnotation>true</addGeneratedAnnotation>
              <locale>it</locale>
              <properties>
                    <property>
                        <name>javax.xml.XMLConstants.ACCESS_EXTERNAL_SCHEMA</name>
                        <value>http,file</value>
                    </property>
                </properties>
              <sources>
                  <source>${basedir}/src/main/resources/documentazione/fatturapa_v1.2.xsd</source>
              </sources>
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>

Вся система работает хорошо.

Проблема: Я добавляю некоторые аннотации и некоторые методы к сгенерированным классам, например, некоторые валидаторы и аннотации для GUI.Если я запускаю сборку с профилем CreateClasses , потому что в схеме есть некоторые обновления, я теряю все изменения.

Вопрос 1: существует ли способ установить определенный класс Java какзаблокирован, чтобы система не регенерировала эти классы?

Вопрос 2: существует ли способ обновить класс, а не воссоздать его с пустого места?Предположим, у меня 20 свойств, теперь к схеме добавлен 21-й, я не хочу терять редактирование неизменных свойств.

...