Я какое-то время использовал xml-maven-plugin (спасибо Pascal Thivent и Rick Seller за то, что познакомил меня с этим), но имел некоторые проблемы с этим.
Я проверял документ XML. В какой-то момент мы разбили XML-документ на два файла, оба в своем собственном подкаталоге. В этот момент xml-maven-plugin больше ничего не проверял, потому что файл был перемещен, но и не жаловался на это. Также лично я обнаружил, что конфигурация не слишком интуитивна и немного сложна для отладки, если вы этого не ожидаете.
Так что для меня я был рад заново открыть задачу schemavalidate Ant в сочетании с maven-antrun-plugin . Сделал все что мне нужно и даже больше.
В приведенном ниже примере я проверяю, действительно ли выбраны файлы. Конечно, вы можете адаптировать это для ваших конкретных потребностей. В качестве бонуса (хотя и немного не по теме) приведен пример того, как я беру путь xsd, который загружается как зависимость.
<build>
<plugins>
<plugin><groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId><version>1.8</version>
<executions><execution>
<id>validate-xml-document-files-against-schema</id>
<phase>test</phase>
<goals><goal>run</goal></goals>
<configuration>
<target>
<copy file="${maven.dependency.com.mycompany.some-schema.xsd.path}" tofile="${xml-validation-dir}/some-schema.xsd" />
<resourcecount property="xml.count">
<fileset dir="${xml-validation-dir}" includes="**/*.xml" />
</resourcecount>
<fail message="fileset does not match any xml file (use same fileset for actual validation)">
<condition><equals arg1="${xml.count}" arg2="0" /></condition>
</fail>
<echo message="validating ${xml.count} xml files against some-schema" />
<schemavalidate>
<schema namespace="http://mycompany.com/some-namespace" file="${xml-validation-dir}/some-schema.xsd" />
<fileset dir="${xml-validation-dir}" includes="**/*.xml" />
</schemavalidate>
<echo message="all ${xml.count} xml documents are valid" />
</target>
</configuration>
</execution></executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>some-schema-artifact</artifactId>
<version>1.2.3</version>
<type>xsd</type>
</dependency>
</dependencies>
Конечно, это не совсем подходит для работы с maven, но это сработало для меня, и, возможно, кому-то другому поможет эта опция.