У меня есть проект, который генерирует Java исходный код из файла *.xsd
с использованием jaxb2-maven-plugin
.
. Это работает хорошо, если у меня не было разрешения git megrge для разрешения. В этом случае git оставляет файл *.orig
в том же месте. jaxb2-maven-plugin
забирает эту копию и, следовательно, дает сбой:
[ERROR] file:/D:/data/scm-workspace/anderes/Jaxb/jaxb2-maven-plugin_not-filtering/src/main/xsd/demo.xsd.orig [8,15]
org.xml.sax.SAXParseException: 'Demo' is already defined
В моем pom.xml
я добавил фильтр, как описано здесь .
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.5.0</version>
<executions>
<execution>
<id>xjc-codegen</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<xjbExcludeFilters>
<filter implementation="org.codehaus.mojo.jaxb2.shared.filters.pattern.PatternFileFilter">
<patterns>
<pattern>\.orig</pattern> <!-- file created by git -->
</patterns>
</filter>
</xjbExcludeFilters>
<schemaFiles>demo.xsd</schemaFiles>
<!-- <clearOutputDir>true</clearOutputDir> -->
<outputDirectory>target/generated-sources/jaxb</outputDirectory>
</configuration>
</plugin>
в журнал (mvn -X ...
) Я вижу, что фильтр выбран:
[DEBUG] (f) xjbExcludeFilters = [Filter [PatternFileFilter]
| Processes nulls: [false]
| Accept on match: [true]
| Initialized : [false]
| 1 regularExpressions :
| [1/1]: (\p{javaLetterOrDigit}|\p{Punct})+\.orig]
[DEBUG] -- end configuration --
, но позже фильтр не применяется и файл резервной копии не исключается:
+=================== [Filtered sources]
|
| 3 Exclude patterns:
| [1/3]: Filter [PatternFileFilter]
| Processes nulls: [false]
| Accept on match: [true]
| Initialized : [true]
| 3 regularExpressions :
| [1/3]: (\p{javaLetterOrDigit}|\p{Punct})+README.*
| [2/3]: (\p{javaLetterOrDigit}|\p{Punct})+\.xml
| [3/3]: (\p{javaLetterOrDigit}|\p{Punct})+\.txt
| [2/3]: Filter [FileFilterAdapter]
| Processes nulls: [false]
| [3/3]: Filter [PatternFileFilter]
| Processes nulls: [false]
| Accept on match: [true]
| Initialized : [true]
| 1 regularExpressions :
| [1/1]: (\p{javaLetterOrDigit}|\p{Punct})+\.xjb
|
| 1 Standard Directories:
| [1/1]: src/main/xsd
|
| 2 Results:
| [1/2]: file:/D:/data/scm-workspace/anderes/Jaxb/jaxb2-maven-plugin_not-filtering/src/main/xsd/demo.xsd
| [2/2]: file:/D:/data/scm-workspace/anderes/Jaxb/jaxb2-maven-plugin_not-filtering/src/main/xsd/demo.xsd.orig
как мне заставить работать фильтрацию?