Что происходит для меня, так это то, что каждый раз, когда есть сборка maven, все мои файлы восстанавливаются. Я не хочу этого, так как я не внес никаких изменений в мой.xsd файл, и что происходит, потому что они были регенерированы, git обрабатывает их, поскольку были внесены изменения в эти файлы.
Здесь моя конфигурация:
<execution>
<id>myExecution</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<schemaDirectory>src/main/resources/MySchema.xsd</schemaDirectory>
<generatePackage>com.mypackage</generatePackage>
<generateDirectory>src/main/java</generateDirectory>
<episode>false</episode>
</configuration>
</execution>
есть ли способ сделать это?
Никогда не пишите сгенерированный источник в каталог src/main/java. Просто используйте значение generateDirectory по умолчанию ($ {project.build.directory}/generated-sources/xjc) - он автоматически добавляется в источники компиляции.
Лучше всего разместить все артефакты, сгенерированные процессом сборки, в каталог назначения maven (aka $ {project.build.directory}).
Кроме того, я рекомендую вам использовать плагин Codehaus JAXB-2 Maven, поскольку он, по-видимому, намного лучше поддерживается.
Я также ищу то же решение, которое вам нужно.
Чтобы не тратить время на перекомпиляцию кода каждый раз, в Maven я создал два профиля.
Первый профиль используется только для повторного создания классов из XSD: плагин находится внутри профиля
<profile>
<id>create-from-xsd</id>
<plugins>
<plugin>
... maven jax plugin ...
</plugin>
<plugins>
<profile>
а потом другой профиль без плагина.
Когда мне нужен jax-b, я выбираю профиль 1 и классы генерируются; В остальных случаях я использую профиль 2.