Usage
It's easy (you need to use Maven version >= 3.1.0):
<build>
<plugins>
<plugin>
<groupId>com.qulice</groupId>
<artifactId>qulice-maven-plugin</artifactId>
<version>0.27.4</version>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>POM XPath Assertions
Qulice can validate your pom.xml against a list of XPath queries. Each query has to find at least one node in the POM, otherwise the build will fail. Configure the queries via the asserts parameter:
<build>
<plugins>
<plugin>
<groupId>com.qulice</groupId>
<artifactId>qulice-maven-plugin</artifactId>
<version>0.27.4</version>
<configuration>
<asserts>
<param>/pom:project/pom:build/pom:plugins/pom:plugin[pom:artifactId='qulice-maven-plugin']/pom:artifactId/text()</param>
<param>/pom:project/pom:dependencies/pom:dependency[pom:artifactId='commons-io']/pom:version[.='1.2.5']/text()</param>
</asserts>
</configuration>
</plugin>
</plugins>
</build>
The pom namespace prefix is bound to http://maven.apache.org/POM/4.0.0 and must be used in every component of every XPath query. Each query must end with /text().
Cutting Edge Version
If you want to use current version of the product, you can do it with this configuration in your pom.xml:
<pluginRepositories>
<pluginRepository>
<id>oss.sonatype.org</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</pluginRepository>
</pluginRepositories>
<build>
<plugins>
<plugin>
<groupId>com.qulice</groupId>
<artifactId>qulice-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
[...]
</plugin>
</plugins>
</build>