Merge pull request #96 from kemitix/release/4.0.0

Release 4.0.0
This commit is contained in:
Paul Campbell 2017-09-18 16:02:19 +01:00 committed by GitHub
commit 15644e3ca7
3 changed files with 167 additions and 445 deletions

View file

@ -1,6 +1,21 @@
CHANGELOG
=========
4.0.0
-----
* [BREAKING] Use `kemitix-quality-maven-plugin` to replace some plugins - required 100% code and mutation coverage by default
* Upgrade `maven-antrun-plugin` 1.3 -> 1.8
* Upgrade `maven-release-plugin` 2.3.2 -> 2.5.3
* Upgrade `maven-javadoc-plugin` 2.10.4 -> 3.0.0-M1
* Upgrade `maven-dependency-plugin` 2.8 -> 3.0.2
* Upgrade `maven-assembly-plugin` 2.2-beta-5 -> 3.1.0
* Upgrade `maven-deploy-plugin` 2.8 -> 2.8.2
* Upgrade `maven-compiler-plugin` _ -> 3.7.0
* Upgrade `maven-project-info-reports-plugin` _ -> 2.9
* Upgrade `maven-surefire-plugin` _ -> 2.20.1
* Upgrade `maven-failsafe-plugin` _ -> 2.20.1
3.2.4
-----

153
README.md
View file

@ -22,13 +22,8 @@ desired value.
* project.build.sourceEncoding
* project.reporting.outputEncoding
* kemitix.build.directory
* kemitix-checkstyle-ruleset.version
* kemitix-checkstyle-ruleset.level
* kemitix-quality-maven-plugin.version
* lombok.version
* digraph-dependency.version
* digraph-dependency.basePackage
* required-maven.version
* maven-enforcer-plugin.version
* maven-javadoc-plugin.version
* maven-source-plugin.version
* maven-gpg-plugin.version
@ -36,48 +31,17 @@ desired value.
* maven-compiler-plugin.version
* maven-surefire-plugin.version
* maven-failsafe-plugin.version
* maven-pmd-plugin.version
* huntbugs.version
* jacoco-maven-plugin.version
* highwheel-maven.version
* pitest.version
* maven-jxr-plugin.version
* jacoco-class-line-covered-ratio
* jacoco-class-instruction-covered-ratio
* jacoco-class-missed-count-maximum
* java.version
* versions.version
* coveralls-maven-plugin.version
## Checkstyle
## Kemitix Quality
The Checkstyle plugin is configured using the
`kemitix-checkstyle-ruleset-maven-plugin`.
The [kemitix-quality-maven-plugin](https://github.com/kemitix/kemitix-quality-maven-plugin)
provides several preconfigured quality related plugins.
The `kemitix-checkstyle-ruleset` provides five levels of checks. The
default is set to `5-complexity`, the most strict. It runs during the
`validate` phase.
### Configuration
Set the property `kemitix-checkstyle-ruleset.level` to one of the
following values to select a less-strict ruleset:
* 1-layout
* 2-naming
* 3-javadoc
* 4-tweaks
* 5-complexity
## Maven Enforcer Plugin
Ensures that a suitable version of Maven is being used.
Runs it's `display-info` and `enforce` goals during the `validate` phase.
### Configuration
* requireMavenVersion: ${required-maven.version}
N.B. The Kemitix Quality plugin required 100% code instruction coverage and mutation ratio. See the project page for details of adjusting these levels if needed.
## Maven Compiler Plugin
@ -115,52 +79,6 @@ goal during the `verify` phase.
No configuration applied beyond the defaults.
## Maven PMD Plugin
The [Maven PMD Plugin](https://maven.apache.org/plugins/maven-pmd-plugin/index.html)
runs the [PMD](http://pmd.sourceforge.net/) code analysis.
Runs its [pmd](https://maven.apache.org/plugins/maven-pmd-plugin/pmd-mojo.html)
and [cpd](https://maven.apache.org/plugins/maven-pmd-plugin/cpd-mojo.html) goals
during the `compile` phase.
### Configuration
No configuration applied beyond the defaults.
## Huntbugs Maven Plugin
The [Huntbugs Maven Plugin](https://github.com/amaembo/huntbugs) is a
static code analyser.
Runs during the `compile` phase.
### Configuration
No configuration applied beyond the defaults.
## Jacoco Maven Plugin
The [Jacoco Maven Plugin](http://eclemma.org/jacoco/trunk/doc/maven.html)
provides code coverage analysis after your tests have run.
### Configuration
#### Classes
For each class not excluded the Lines Covered Ratio must be at least 50%.
For each class not excluded the Instructions Covered Ration must be at least
80%.
Excluded from analysis:
* `*Test` - test classes
* `*IT` - integration test classes
* `*Main` - main classes
* `*Application` - application classes
* `*Configuration` - (Spring) configuration classes
## Maven Source Plugin
The [Maven Source Plugin](https://maven.apache.org/plugins/maven-source-plugin/)
@ -204,67 +122,6 @@ produces cross-referenced HTML pages of your source code.
No configuration applied beyond the defaults.
## Highwheel Plugin
The [Highwheel Plugin](https://github.com/hcoles/highwheel)
generates a report for packages and classes at `target/highwheel/index.html`
that highlights where there are cyclic dependencies between packages and between
classes.
### Configuration
The plugin will `analyse` the project during the `verify` phase.
## Pitest Plugin
The [Pitest Plugin](http://pitest.org/)
provides mutation testing for classes found in the generated `target`
directory.
### Configuration
The plugin with perform mutation tests during the `verify` phase.
By default, classed named `Immutable*`, will not be included.
(e.g. classes generated by `org.immutables:value`)
The following properties can adjust the default configuration.
#### `pitest.skip`
Default is `false`.
Set this to `true` to disable the **Pitest Plugin**.
#### `pitest.coverage`
Default is `0`%. (i.e. disabled)
Line coverage at which to fail build.
#### `pitest.mutation`
Default is `0`%. (i.e. disabled)
Mutation score threshold at which to fail build.
#### `pitest.failWhenNoMutations`
Default is `true`.
Set this to `false` to not fail build when there are no mutations.
## Digraph Dependency Plugin
The [Digraph Dependency Plugin](https://github.com/kemitix/digraph-dependency-maven-plugin)
generates a DOT file diagram showing the dependencies between packages in a project.
### Configuration
The plugin will generate the `target/digraph.dot` file during the `validate` phase.
Set the `digraph-dependency.basePackage` property to the root package to graph.
## Coveralls
The [Coveralls Maven Plugin](https://github.com/trautonen/coveralls-maven-plugin)

444
pom.xml
View file

@ -5,7 +5,7 @@
<groupId>net.kemitix</groupId>
<artifactId>kemitix-parent</artifactId>
<version>3.2.4</version>
<version>4.0.0</version>
<packaging>pom</packaging>
<name>Kemitix Parent</name>
@ -37,40 +37,29 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<kemitix.build.directory>target</kemitix.build.directory>
<kemitix-checkstyle-ruleset.version>3.3.0</kemitix-checkstyle-ruleset.version>
<kemitix-checkstyle-ruleset.level>5-complexity</kemitix-checkstyle-ruleset.level>
<lombok.version>1.16.18</lombok.version>
<digraph-dependency.version>0.9.0</digraph-dependency.version>
<digraph-dependency.basePackage>net.kemitix</digraph-dependency.basePackage>
<kemitix-quality-maven-plugin.version>0.2.1</kemitix-quality-maven-plugin.version>
<digraphBasePackage>net.kemitix</digraphBasePackage>
<lombok.version>1.16.18</lombok.version>
<maven-antrun-plugin.version>1.8</maven-antrun-plugin.version>
<maven-clean-plugin.version>3.0.0</maven-clean-plugin.version>
<maven-install-plugin.version>2.5.2</maven-install-plugin.version>
<maven-release-plugin.version>2.5.3</maven-release-plugin.version>
<maven-site-plugin.version>3.6</maven-site-plugin.version>
<maven-javadoc-plugin.version>2.10.4</maven-javadoc-plugin.version>
<maven-javadoc-plugin.version>3.0.0-M1</maven-javadoc-plugin.version>
<maven-source-plugin.version>3.0.1</maven-source-plugin.version>
<maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
<maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
<maven-compiler-plugin.version>3.6.1</maven-compiler-plugin.version>
<maven-surefire-plugin.version>2.20</maven-surefire-plugin.version>
<maven-failsafe-plugin.version>2.20</maven-failsafe-plugin.version>
<maven-pmd-plugin.version>3.8</maven-pmd-plugin.version>
<huntbugs.version>0.0.11</huntbugs.version>
<jacoco-maven-plugin.version>0.7.9</jacoco-maven-plugin.version>
<highwheel-maven.version>1.2</highwheel-maven.version>
<pitest.version>1.2.0</pitest.version>
<maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
<maven-dependency-plugin.version>3.0.2</maven-dependency-plugin.version>
<maven-assembly-plugin.version>3.1.0</maven-assembly-plugin.version>
<maven-surefire-plugin.version>2.20.1</maven-surefire-plugin.version>
<maven-failsafe-plugin.version>2.20.1</maven-failsafe-plugin.version>
<maven-jxr-plugin.version>2.5</maven-jxr-plugin.version>
<maven-project-info-reports-plugin.version>2.9</maven-project-info-reports-plugin.version>
<jacoco-class-line-covered-ratio>0.50</jacoco-class-line-covered-ratio>
<jacoco-class-instruction-covered-ratio>0.80</jacoco-class-instruction-covered-ratio>
<jacoco-class-missed-count-maximum>0</jacoco-class-missed-count-maximum>
<java.version>1.8</java.version>
<pitest.coverage>0</pitest.coverage>
<pitest.mutation>0</pitest.mutation>
<pitest.skip>false</pitest.skip>
<pitest.failWhenNoMutations>true</pitest.failWhenNoMutations>
<versions.version>2.4</versions.version>
<required-maven.version>3.0.4</required-maven.version>
<maven-enforcer-plugin.version>1.4.1</maven-enforcer-plugin.version>
<coveralls-maven-plugin.version>4.3.0</coveralls-maven-plugin.version>
</properties>
@ -101,7 +90,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<executions>
<execution>
<id>attach-javadocs</id>
@ -116,7 +104,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
<executions>
<execution>
<id>attach-sources</id>
@ -131,7 +118,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven-gpg-plugin.version}</version>
<configuration>
<passphrase>${gpg.passphrase}</passphrase>
</configuration>
@ -149,7 +135,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>${maven-deploy-plugin.version}</version>
</plugin><!-- maven deploy-plugin -->
</plugins>
</build>
@ -185,258 +170,148 @@
<build>
<directory>${kemitix.build.directory}</directory>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
</plugin><!-- maven-javadoc-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
</plugin><!-- maven-source-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven-gpg-plugin.version}</version>
</plugin><!-- maven-gpg-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>${maven-deploy-plugin.version}</version>
</plugin><!-- maven deploy-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven-clean-plugin.version}</version>
</plugin><!-- maven-clean-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>${maven-antrun-plugin.version}</version>
</plugin><!-- maven-antrun-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>${maven-install-plugin.version}</version>
</plugin><!-- maven-install-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${maven-site-plugin.version}</version>
</plugin><!-- maven-site-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<compilerArgs>
<arg>-Xlint:unchecked</arg>
</compilerArgs>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin><!-- maven-compiler-plugin -->
<plugin>
<groupId>net.kemitix</groupId>
<artifactId>kemitix-quality-maven-plugin</artifactId>
<version>${kemitix-quality-maven-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>validate</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${maven-dependency-plugin.version}</version>
</plugin><!-- maven-dependency-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>${maven-assembly-plugin.version}</version>
</plugin><!-- maven-assembly-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${maven-release-plugin.version}</version>
</plugin><!-- maven-release-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
</plugin><!-- maven-surefire-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven-failsafe-plugin.version}</version>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>verify</id>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin><!-- maven-failsafe-plugin -->
<plugin>
<groupId>org.eluder.coveralls</groupId>
<artifactId>coveralls-maven-plugin</artifactId>
<version>${coveralls-maven-plugin.version}</version>
</plugin><!-- coveralls-maven-plugin -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${versions.version}</version>
</plugin><!-- versions-maven-plugin -->
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>net.kemitix</groupId>
<artifactId>kemitix-checkstyle-ruleset-maven-plugin</artifactId>
<version>${kemitix-checkstyle-ruleset.version}</version>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<level>${kemitix-checkstyle-ruleset.level}</level>
</configuration>
</plugin><!-- kemitix-checkstyle-ruleset-maven-plugin -->
<plugin>
<groupId>net.kemitix</groupId>
<artifactId>digraph-dependency-maven-plugin</artifactId>
<version>${digraph-dependency.version}</version>
<configuration>
<basePackage>${digraph-dependency.basePackage}</basePackage>
</configuration>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>digraph</goal>
</goals>
</execution>
</executions>
</plugin><!-- digraph-dependency-maven-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin.version}</version>
<executions>
<execution>
<id>enforce-maven</id>
<phase>validate</phase>
<goals>
<goal>display-info</goal>
<goal>enforce</goal>
</goals>
</execution>
</executions>
<configuration>
<rules>
<requireMavenVersion>
<version>${required-maven.version}</version>
</requireMavenVersion>
<requireJavaVersion>
<version>${java.version}</version>
</requireJavaVersion>
</rules>
</configuration>
</plugin><!-- maven-enforcer-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven-clean-plugin.version}</version>
</plugin><!-- maven-clean-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>${maven-install-plugin.version}</version>
</plugin><!-- maven-install-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${maven-site-plugin.version}</version>
</plugin><!-- maven-site-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<compilerArgs>
<arg>-Xlint:unchecked</arg>
</compilerArgs>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin><!-- maven-compiler-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
</plugin><!-- maven-surefire-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven-failsafe-plugin.version}</version>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>verify</id>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin><!-- maven-failsafe-plugin -->
<plugin>
<groupId>org.eluder.coveralls</groupId>
<artifactId>coveralls-maven-plugin</artifactId>
<version>${coveralls-maven-plugin.version}</version>
</plugin><!-- coveralls-maven-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${maven-pmd-plugin.version}</version>
<executions>
<execution>
<id>pmd</id>
<phase>verify</phase>
<goals>
<goal>pmd</goal>
</goals>
</execution>
<execution>
<id>cpd</id>
<phase>verify</phase>
<goals>
<goal>cpd</goal>
</goals>
</execution>
</executions>
</plugin><!-- maven-pmd-plugin -->
<plugin>
<groupId>one.util</groupId>
<artifactId>huntbugs-maven-plugin</artifactId>
<version>${huntbugs.version}</version>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>huntbugs</goal>
</goals>
</execution>
</executions>
</plugin><!-- huntbugs-maven-plugin -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>default-check</id>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<rules>
<rule>
<element>CLASS</element>
<excludes>
<exclude>*Test</exclude>
<exclude>*IT</exclude>
<exclude>*Main</exclude>
<exclude>*Application</exclude>
<exclude>*Configuration</exclude>
<exclude>*Immutable*</exclude>
</excludes>
<limits>
<limit>
<counter>LINE</counter>
<value>COVEREDRATIO</value>
<minimum>${jacoco-class-line-covered-ratio}</minimum>
</limit>
<limit>
<counter>INSTRUCTION</counter>
<value>COVEREDRATIO</value>
<minimum>${jacoco-class-instruction-covered-ratio}</minimum>
</limit>
<limit>
<counter>CLASS</counter>
<value>MISSEDCOUNT</value>
<maximum>${jacoco-class-missed-count-maximum}</maximum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</plugin><!-- jacoco-maven-plugin -->
<plugin>
<groupId>org.pitest</groupId>
<artifactId>highwheel-maven</artifactId>
<version>${highwheel-maven.version}</version>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>analyse</goal>
</goals>
</execution>
</executions>
</plugin><!-- highwheel-maven -->
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.version}</version>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>mutationCoverage</goal>
</goals>
</execution>
</executions>
<configuration>
<skip>${pitest.skip}</skip>
<timestampedReports>false</timestampedReports>
<excludedClasses>*.Immutable*</excludedClasses>
<coverageThreshold>${pitest.coverage}</coverageThreshold>
<mutationThreshold>${pitest.mutation}</mutationThreshold>
<failWhenNoMutations>${pitest.failWhenNoMutations}</failWhenNoMutations>
</configuration>
</plugin><!-- pitest-maven -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${versions.version}</version>
</plugin><!-- versions-maven-plugin -->
<artifactId>kemitix-quality-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>${maven-project-info-reports-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
@ -447,31 +322,6 @@
<artifactId>maven-jxr-plugin</artifactId>
<version>${maven-jxr-plugin.version}</version>
</plugin><!-- maven-jxr-plugin -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
</plugin><!-- jacoco-maven-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${maven-pmd-plugin.version}</version>
<configuration>
<linkXRef>true</linkXRef>
</configuration>
</plugin><!-- maven-pmd-plugin -->
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.version}</version>
<reportSets>
<reportSet>
<reports>
<report>report</report>
</reports>
</reportSet>
</reportSets>
</plugin><!-- pitest-maven -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>