blob: e98d776be20da83b9c20f3ba444041aa424c3593 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--
TIPS:
- use "mvn versions:display-dependency-updates" to see what dependencies
have updates available.
- use "mvn versions:display-plugin-updates" to see what plugins have
updates available.
-->
<modelVersion>4.0.0</modelVersion>
<!-- Used for making releases. -->
<parent>
<artifactId>oss-parent</artifactId>
<groupId>org.sonatype.oss</groupId>
<version>9</version>
</parent>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.6-SNAPSHOT</version>
<packaging>jar</packaging>
<name>checkstyle</name>
<description>
Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard
</description>
<url>http://checkstyle.sourceforge.net/</url>
<inceptionYear>2001</inceptionYear>
<licenses>
<license>
<name>LGPL-2.1+</name>
<url>http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt</url>
</license>
</licenses>
<developers>
<developer>
<id>romani</id>
<name>Roman Ivanov</name>
<roles>
<role>project admin, lead developer</role>
</roles>
</developer>
<developer>
<id>rnveach</id>
<name>Richard Veach</name>
<roles>
<role>project admin, developer</role>
</roles>
</developer>
<developer>
<id>sabaka</id>
<name>Ilja Dubinin</name>
<roles>
<role>developer</role>
</roles>
</developer>
<developer>
<id>MEZk</id>
<name>Andrei Selkin</name>
<roles>
<role>developer</role>
</roles>
</developer>
<developer>
<id>Vladlis</id>
<name>Vladislav Lisetskii</name>
<roles>
<role>developer</role>
</roles>
</developer>
<developer>
<id>oburn</id>
<name>Oliver Burn</name>
<roles>
<role>founder (retired)</role>
</roles>
</developer>
<developer>
<id>mkordas</id>
<name>Michał Kordas</name>
<roles>
<role>former developer</role>
</roles>
</developer>
<developer>
<id>rdiachenko</id>
<name>Ruslan Diachenko</name>
<roles>
<role>former developer</role>
</roles>
</developer>
<developer>
<id>baratali</id>
<name>Baratali Izmailov</name>
<roles>
<role>former developer</role>
</roles>
</developer>
<developer>
<id>daniilyar</id>
<name>Daniil Yaroslavtsev</name>
<roles>
<role>former developer</role>
</roles>
</developer>
<developer>
<id>moradan</id>
<name>Ivan Sopov</name>
<roles>
<role>former developer</role>
</roles>
</developer>
<developer>
<id>lkuehne</id>
<name>Lars Kühne</name>
<roles>
<role>former developer</role>
</roles>
</developer>
<developer>
<id>rickgiles</id>
<name>Rick Giles</name>
<roles>
<role>former developer</role>
</roles>
</developer>
<developer>
<id>o_sukhodolsky</id>
<name>Oleg Sukhodolsky</name>
<roles>
<role>former developer</role>
</roles>
</developer>
<developer>
<id>mstudman</id>
<name>Michael Studman</name>
<roles>
<role>former developer</role>
</roles>
</developer>
<developer>
<id>tschneeberger</id>
<name>Travis Schneeberger</name>
<roles>
<role>former developer</role>
</roles>
</developer>
</developers>
<contributors>
<contributor>
<url>https://github.com/checkstyle/checkstyle/graphs/contributors</url>
</contributor>
</contributors>
<mailingLists>
<mailingList>
<name>checkstyle-announce</name>
<archive>https://groups.google.com/forum/#!forum/checkstyle-announce</archive>
<subscribe>mailto:checkstyle-announce%2Bsubscribe@googlegroups.com</subscribe>
<unsubscribe>mailto:checkstyle-announce%2Bunsubscribe@googlegroups.com</unsubscribe>
<post>privilege of admins</post>
</mailingList>
<mailingList>
<name>checkstyle</name>
<archive>https://groups.google.com/forum/#!forum/checkstyle</archive>
<subscribe>mailto:checkstyle%2Bsubscribe@googlegroups.com</subscribe>
<unsubscribe>mailto:checkstyle%2Bunsubscribe@googlegroups.com</unsubscribe>
<post>mailto:checkstyle@googlegroups.com</post>
</mailingList>
<mailingList>
<name>checkstyle-devel</name>
<archive>https://groups.google.com/forum/#!forum/checkstyle-devel</archive>
<subscribe>mailto:checkstyle-devel%2Bsubscribe@googlegroups.com</subscribe>
<unsubscribe>mailto:checkstyle-devel%2Bunsubscribe@googlegroups.com</unsubscribe>
<post>mailto:checkstyle-devel@googlegroups.com</post>
</mailingList>
</mailingLists>
<prerequisites>
<maven>3.0.1</maven>
</prerequisites>
<scm>
<connection>scm:git:git@github.com:checkstyle/checkstyle.git</connection>
<developerConnection>scm:git:git@github.com:checkstyle/checkstyle.git</developerConnection>
<url>https://github.com/checkstyle/checkstyle</url>
</scm>
<issueManagement>
<system>GitHub Issues</system>
<url>https://github.com/checkstyle/checkstyle/issues</url>
</issueManagement>
<ciManagement>
<system>travis</system>
<url>https://travis-ci.org/checkstyle/checkstyle</url>
</ciManagement>
<distributionManagement>
<site>
<id>sourceforge-new-site</id>
<name>New Site</name>
<url>scp://shell.sourceforge.net/home/project-web/checkstyle/htdocs/new-site</url>
</site>
</distributionManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<projectVersion>${project.version}</projectVersion>
<antlr4.version>4.7</antlr4.version>
<maven.site.plugin.version>3.6</maven.site.plugin.version>
<maven.findbugs.plugin.version>3.0.5</maven.findbugs.plugin.version>
<maven.spotbugs.plugin.version>3.0.6</maven.spotbugs.plugin.version>
<maven.pmd.plugin.version>3.8</maven.pmd.plugin.version>
<pmd.version>5.8.1</pmd.version>
<maven.jacoco.plugin.version>0.7.9</maven.jacoco.plugin.version>
<saxon.version>9.8.0-6</saxon.version>
<maven.checkstyle.plugin.version>2.17</maven.checkstyle.plugin.version>
<maven.sevntu.checkstyle.plugin.version>1.25.0</maven.sevntu.checkstyle.plugin.version>
<maven.sevntu-checkstyle-check.checkstyle.version>8.5</maven.sevntu-checkstyle-check.checkstyle.version>
<maven.versions.plugin.version>2.5</maven.versions.plugin.version>
<java.version>1.8</java.version>
<tools.jar.version>${java.version}.0</tools.jar.version>
<tools.jar.path>${java.home}/../lib/tools.jar</tools.jar.path>
<pitest.plugin.version>1.2.4</pitest.plugin.version>
<pitest.plugin.timeout.factor>10</pitest.plugin.timeout.factor>
<pitest.plugin.timeout.constant>50000</pitest.plugin.timeout.constant>
<pitest.plugin.threads>4</pitest.plugin.threads>
<sonar.test.exclusions>**/test/resources/**/*,**/it/resources/**/*</sonar.test.exclusions>
</properties>
<!-- that repositories are required for testing plugin's snapshot version -->
<pluginRepositories>
<pluginRepository>
<id>nexus-codehaus-snapshot</id>
<name>Codehaus Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/codehaus-snapshots/</url>
</pluginRepository>
<pluginRepository>
<id>sevntu-maven</id>
<name>sevntu-maven</name>
<url>http://sevntu-checkstyle.github.io/sevntu.checkstyle/maven2</url>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
<version>2.7.7</version>
</dependency>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr4-runtime</artifactId>
<version>${antlr4.version}</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.3-jre</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.10.1</version>
<scope>provided</scope>
</dependency>
<!-- test scope stuff -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.stefanbirkner</groupId>
<artifactId>system-rules</artifactId>
<version>1.16.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>nl.jqno.equalsverifier</groupId>
<artifactId>equalsverifier</artifactId>
<version>2.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.7.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.7.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit</artifactId>
<version>4.9.0.201710071750-r</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.25</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.agent</artifactId>
<version>${maven.jacoco.plugin.version}</version>
<scope>test</scope>
<classifier>runtime</classifier>
</dependency>
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>Saxon-HE</artifactId>
<version>${saxon.version}</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
<configuration>
<source>${java.version}</source>
<failOnError>true</failOnError>
<linksource>true</linksource>
<tags>
<tag>
<name>noinspection</name>
<placement>X</placement>
</tag>
</tags>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${maven.pmd.plugin.version}</version>
<configuration>
<targetJdk>${java.version}</targetJdk>
<minimumTokens>20</minimumTokens>
<skipEmptyReport>false</skipEmptyReport>
<failOnViolation>true</failOnViolation>
<printFailingErrors>true</printFailingErrors>
<includeTests>true</includeTests>
<rulesets>
<ruleset>config/pmd-main.xml</ruleset>
<ruleset>config/pmd-test.xml</ruleset>
</rulesets>
<excludeRoots>
<excludeRoot>src/it/resources</excludeRoot>
<excludeRoot>src/test/resources</excludeRoot>
<excludeRoot>target/generated-sources/antlr</excludeRoot>
<excludeRoot>target/generated-sources/antlr/com/puppycrawl/tools/checkstyle/grammars/javadoc</excludeRoot>
</excludeRoots>
</configuration>
<dependencies>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-java</artifactId>
<version>${pmd.version}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-core</artifactId>
<version>${pmd.version}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-javascript</artifactId>
<version>${pmd.version}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-jsp</artifactId>
<version>${pmd.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>${maven.findbugs.plugin.version}</version>
<configuration>
<effort>Max</effort>
<threshold>Low</threshold>
<excludeFilterFile>config/findbugs-exclude.xml</excludeFilterFile>
</configuration>
</plugin>
<plugin>
<groupId>com.github.hazendaz.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${maven.spotbugs.plugin.version}</version>
<configuration>
<effort>Max</effort>
<threshold>Low</threshold>
<excludeFilterFile>config/findbugs-exclude.xml</excludeFilterFile>
<findbugsXmlOutputDirectory>target/spotbugsreports</findbugsXmlOutputDirectory>
</configuration>
</plugin>
<!-- This plugin's configuration is used to store Eclipse
m2e settings only. It has no influence on the Maven build itself.
-->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<versionRange>[1.0,)</versionRange>
<goals>
<goal>run</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>antlr-maven-plugin</artifactId>
<versionRange>[1.0,)</versionRange>
<goals>
<goal>generate</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.antlr</groupId>
<artifactId>antlr4-maven-plugin</artifactId>
<versionRange>[4.2,)</versionRange>
<goals>
<goal>antlr4</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnIncremental>true</runOnIncremental>
</execute>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<versionRange>[1.2,)</versionRange>
<goals>
<goal>enforce</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tidy-maven-plugin</artifactId>
<versionRange>1.0-beta-1</versionRange>
<goals>
<goal>check</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven.checkstyle.plugin.version}</version>
<dependencies>
<dependency>
<groupId>com.github.sevntu-checkstyle</groupId>
<artifactId>sevntu-checkstyle-maven-plugin</artifactId>
<version>${maven.sevntu.checkstyle.plugin.version}</version>
</dependency>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>${maven.sevntu-checkstyle-check.checkstyle.version}</version>
</dependency>
</dependencies>
<!-- Specifying configuration here will take effect on the execution of "mvn checkstyle:checkstyle",
but will not take effect on the execution of "mvn site" -->
<executions>
<execution>
<id>sevntu-checkstyle-check</id>
<phase>verify</phase>
<configuration>
<configLocation>${project.basedir}/config/checkstyle_sevntu_checks.xml</configLocation>
<failOnViolation>true</failOnViolation>
<includeResources>false</includeResources>
<includeTestResources>false</includeTestResources>
<logViolationsToConsole>true</logViolationsToConsole>
<maxAllowedViolations>0</maxAllowedViolations>
<violationSeverity>error</violationSeverity>
<propertyExpansion>project.basedir=${project.basedir}</propertyExpansion>
<sourceDirectory>${project.basedir}/src</sourceDirectory>
<excludes>**/it/resources/**/*,**/test/resources/**/*,**/test/resources-noncompilable/**/*</excludes>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<!-- It brakes linkcheck plugin report.
It works when linkcheck.forceSite=false, but
at this case linkcheck report is full of false-positives
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tidy-maven-plugin</artifactId>
<version>1.0-beta-1</version>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin> -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>pre-site</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/site/dtds</outputDirectory>
<resources>
<resource>
<directory>src/main/resources/com/puppycrawl/tools/checkstyle</directory>
<includes>
<include>*.dtd</include>
</includes>
</resource>
<resource>
<directory>src/main/resources/com/puppycrawl/tools/checkstyle/checks/imports</directory>
<includes>
<include>*.dtd</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
<!-- till https://github.com/checkstyle/checkstyle/issues/2160
<executions>
<execution>
<id>compile-without-error-prone</id>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<testIncludes>
<testInclude>**/Input*.java</testInclude>
</testIncludes>
</configuration>
</execution>
<execution>
<id>compile-with-error-prone</id>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<compilerId>javac-with-errorprone</compilerId>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
<testExcludes>
<testExclude>**/*Input*.java</testExclude>
</testExcludes>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac-errorprone</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
<version>2.0.5</version>
</dependency>
</dependencies>
-->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${maven.versions.plugin.version}</version>
<configuration>
<generateBackupPoms>false</generateBackupPoms>
<rulesUri>file://${basedir}/config/version-number-rules.xml</rulesUri>
<formats>
<format>xml</format>
<format>html</format>
</formats>
</configuration>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.8</version>
<extensions>true</extensions>
<configuration>
<!-- serverId is ID of a <server> section from Maven's settings.xml
to pick authentication information from
-->
<serverId>sonatype-nexus-staging</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${maven.site.plugin.version}</version>
<configuration>
<xdocDirectory>${basedir}/src/xdocs</xdocDirectory>
<!-- false till https://issues.apache.org/jira/browse/MSITE-774 -->
<validate>false</validate>
</configuration>
<dependencies>
<dependency>
<!-- add support for ssh/scp -->
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>3.0.0</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>enforce-versions</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>1.6</version>
</requireJavaVersion>
<!-- we can not use this as it require
compilation on 1.6 only, due to dependency to 'tools'
<enforceBytecodeVersion>
<maxJdkVersion>1.6</maxJdkVersion>
</enforceBytecodeVersion>
-->
</rules>
</configuration>
</execution>
</executions>
<!-- we can not use this as it require
compilation on 1.6 only, due to dependency to 'tool'
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>extra-enforcer-rules</artifactId>
<version>1.0-beta-2</version>
<scope>compile</scope>
</dependency>
</dependencies>
-->
</plugin>
<!-- Generate the ANTLRv2 grammar -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>antlr-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<sourceDirectory>${basedir}/src/main/resources/com/puppycrawl/tools/checkstyle/grammars</sourceDirectory>
<grammars>java.g</grammars>
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Generate the ANTLRv4 grammar -->
<plugin>
<groupId>org.antlr</groupId>
<artifactId>antlr4-maven-plugin</artifactId>
<version>${antlr4.version}</version>
<configuration>
<visitor>false</visitor>
<listener>false</listener>
<sourceDirectory>${basedir}/src/main/resources/</sourceDirectory>
<outputDirectory>${project.build.directory}/generated-sources/antlr/</outputDirectory>
<includes>
<include>com/puppycrawl/tools/checkstyle/grammars/javadoc/*.g4</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>antlr4</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.build.directory}/generated-sources/antlr/</source>
</sources>
</configuration>
</execution>
<execution>
<id>add-test-source</id>
<phase>process-resources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/test/resources</source>
</sources>
</configuration>
</execution>
<execution>
<id>add-it-test-source</id>
<phase>process-resources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/it/java</source>
</sources>
</configuration>
</execution>
<execution>
<id>add-it-test-resource</id>
<phase>process-resources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/it/resources</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.20.1</version>
<configuration>
<includes>
<include>com/google/**/*.java</include>
</includes>
</configuration>
<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>
<!-- Used to set custom properties -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
<configuration>
<systemPropertyVariables>
<jacoco-agent.destfile>${project.build.directory}/jacoco/jacoco.exec</jacoco-agent.destfile>
</systemPropertyVariables>
<additionalClasspathElements>
<additionalClasspathElement>src/test/resources-noncompilable</additionalClasspathElement>
</additionalClasspathElements>
<includes>
<include>com/puppycrawl/**/*.java</include>
</includes>
</configuration>
</plugin>
<!-- Generate checkstylecompilation.properties -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>ant-phase-compile</id>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<property name="mvn.project.build.outputDirectory" value="${project.build.outputDirectory}" />
<property name="mvn.project.version" value="${project.version}" />
<property name="mvn.compile_classpath" refid="maven.compile.classpath" />
<ant antfile="config/ant-phase-compile.xml" />
</target>
</configuration>
</execution>
<execution>
<id>ant-phase-verify</id>
<phase>verify</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<property name="mvn.project.build.directory" value="${project.build.directory}" />
<property name="mvn.project.version" value="${project.version}" />
<property name="mvn.runtime_classpath" refid="maven.runtime.classpath" />
<property name="project.basedir" value="${project.basedir}" />
<ant antfile="config/ant-phase-verify.xml" />
</target>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-nodeps</artifactId>
<version>1.8.1</version>
</dependency>
</dependencies>
</plugin>
<!-- Ensure the manifest has all the gory details -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.10</version>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.hazendaz.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${maven.spotbugs.plugin.version}</version>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>xml-maven-plugin</artifactId>
<version>1.0.1</version>
<executions>
<execution>
<goals>
<goal>validate</goal>
</goals>
</execution>
</executions>
<configuration>
<validationSets>
<validationSet>
<dir>config</dir>
<excludes>
<exclude>java.header</exclude>
<exclude>java_regexp.header</exclude>
<exclude>org.eclipse.jdt.core.prefs</exclude>
<exclude>intellij-idea-inspections.properties</exclude>
</excludes>
</validationSet>
<validationSet>
<dir>src/site/resources/files</dir>
<systemId>src/main/resources/com/puppycrawl/tools/checkstyle/suppressions_1_0.dtd</systemId>
</validationSet>
<validationSet>
<dir>src/site</dir>
<includes>
<include>site.xml</include>
</includes>
<systemId>http://maven.apache.org/xsd/decoration-1.0.0.xsd</systemId>
</validationSet>
<validationSet>
<dir>src/test/resources</dir>
<includes>
<include>com/puppycrawl/tools/checkstyle/packagenamesloader/InputPackageNamesLoaderFile.xml</include>
<include>com/puppycrawl/tools/checkstyle/treewalker/InputTreeWalkerNotJava.xml</include>
</includes>
<systemId>src/main/resources/com/puppycrawl/tools/checkstyle/packages_1_0.dtd</systemId>
</validationSet>
<validationSet>
<dir>src/main/resources</dir>
<includes>
<include>google_checks.xml</include>
<include>sun_checks.xml</include>
</includes>
<systemId>src/main/resources/com/puppycrawl/tools/checkstyle/configuration_1_3.dtd</systemId>
</validationSet>
</validationSets>
<catalogs>
<catalog>config/catalog.xml</catalog>
</catalogs>
</configuration>
</plugin>
<plugin>
<groupId>de.thetaphi</groupId>
<artifactId>forbiddenapis</artifactId>
<version>2.4.1</version>
<configuration>
<targetVersion>${java.version}</targetVersion>
<failOnUnsupportedJava>false</failOnUnsupportedJava>
<bundledSignatures>
<bundledSignature>jdk-unsafe</bundledSignature>
<bundledSignature>jdk-deprecated</bundledSignature>
<bundledSignature>jdk-system-out</bundledSignature>
<bundledSignature>jdk-non-portable</bundledSignature>
</bundledSignatures>
<excludes>
<!-- system-out is ok there, that is CLI -->
<exclude>**/Main.class</exclude>
<!-- generated classes, unfortunately use problematic api -->
<exclude>**/GeneratedJavaLexer.class</exclude>
<exclude>**/JavadocParser.class</exclude>
<!-- excluded till https://github.com/policeman-tools/forbidden-apis/issues/108-->
<exclude>**/checks/annotation/annotationlocation/InputAnnotationLocationDeprecatedAndCustom*</exclude>
</excludes>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
<goal>testCheck</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>edu.illinois</groupId>
<artifactId>nondex-maven-plugin</artifactId>
<version>1.1.1</version>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.9</version>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<reportSets>
<reportSet>
<id>default</id>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<!--
dsm-maven plugin does not support Java 1.8
Deactivated until https://github.com/sevntu-checkstyle/dsm-maven-plugin/issues/31
-->
<!--<plugin>-->
<!--<groupId>com.github.sevntu-checkstyle</groupId>-->
<!--<artifactId>dsm-maven-plugin</artifactId>-->
<!--<version>2.1.4</version>-->
<!--<configuration>-->
<!--<obfuscatePackageNames>true</obfuscatePackageNames>-->
<!--</configuration>-->
<!--</plugin>-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.20.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.7</version>
<reportSets>
<reportSet>
<reports>
<report>cobertura</report>
</reports>
</reportSet>
</reportSets>
<configuration>
<quiet>true</quiet>
<formats>
<format>xml</format>
<format>html</format>
</formats>
<check />
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${maven.jacoco.plugin.version}</version>
<configuration>
<dataFile>${project.build.directory}/jacoco/jacoco.exec</dataFile>
<excludes>
<exclude>com/puppycrawl/tools/checkstyle/ant/CheckstyleAntTask*.class</exclude>
<exclude>com/puppycrawl/tools/checkstyle/grammars/*.class</exclude>
<exclude>com/puppycrawl/tools/checkstyle/grammars/javadoc/*.class</exclude>
<exclude>com/puppycrawl/tools/checkstyle/gui/*.class</exclude>
</excludes>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.5</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jdepend-maven-plugin</artifactId>
<version>2.0</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>taglist-maven-plugin</artifactId>
<version>2.4</version>
<configuration>
<!-- skip till http://jira.codehaus.org/browse/MTAGLIST-71 -->
<skipTestSources>true</skipTestSources>
<tagListOptions>
<tagClasses>
<tagClass>
<displayName>Todo Work</displayName>
<tags>
<tag>
<matchString>todo</matchString>
<matchType>ignoreCase</matchType>
</tag>
<tag>
<matchString>FIXME</matchString>
<matchType>exact</matchType>
</tag>
</tags>
</tagClass>
</tagClasses>
</tagListOptions>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.sonar-plugins</groupId>
<artifactId>maven-report</artifactId>
<version>0.1</version>
<configuration>
<sonarHostURL>https://sonarqube.com</sonarHostURL>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${maven.pmd.plugin.version}</version>
<reportSets>
<reportSet>
<reports>
<report>pmd</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>${maven.findbugs.plugin.version}</version>
</plugin>
<plugin>
<groupId>com.github.hazendaz.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${maven.spotbugs.plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-linkcheck-plugin</artifactId>
<version>1.2</version>
<configuration>
<httpMethod>GET</httpMethod>
<timeout>6000</timeout>
<httpFollowRedirect>false</httpFollowRedirect>
<forceSite>true</forceSite>
<!-- To resolve redirection violation, to find new target url, use:
URL=https://www.cs.....
curl -s -I $URL -L | awk '/Location: (.*)/ {print $2}' | tail -n 1
-->
<excludedPages>
<excludedPage>dependencies.html</excludedPage>
<excludedPage>cobertura/**</excludedPage>
<excludedPage>dsm/**</excludedPage>
<excludedPage>xref/**</excludedPage>
<excludedPage>xref-test/**</excludedPage>
<excludedPage>pmd.html</excludedPage>
<excludedPage>findbugs.html</excludedPage>
<excludedPage>surefire-report.html</excludedPage>
<!-- Excluded due to checkstyle's issue #549 until http://jira.codehaus.org/browse/MTAGLIST-69 will be fixed -->
<excludedPage>taglist.html</excludedPage>
</excludedPages>
<excludedHttpStatusErrors>
<excludedHttpStatusError>401</excludedHttpStatusError>
</excludedHttpStatusErrors>
<excludedLinks>
<excludedLink>reports/google-style/guava</excludedLink>
<excludedLink>reports/javadoc/openjdk8</excludedLink>
<!-- temporal suppress till javadoc tool starts generating links to https -->
<excludedLink>http://docs.oracle.com/javase</excludedLink>
<!-- SSL -->
<excludedLink>https://travis-ci.org/</excludedLink>
<excludedLink>https://travis-ci.org/checkstyle/checkstyle</excludedLink>
<excludedLink>https://coveralls.io/r/checkstyle/checkstyle</excludedLink>
<!-- we did too much requests to github, now github reject all requests "429 Too Many Requests"
https://codeship.com/projects/124310/builds/12027213 -->
<excludedLink>https://github.com/*</excludedLink>
<excludedLink>http://search.maven.org/*</excludedLink>
<!-- codehaus does not exists anymore -->
<excludedLink>http://sonar-plugins.codehaus.org/maven-report</excludedLink>
<!-- this plugin does not have site at all -->
<excludedLink>http://hazendaz.github.io/findbugs-maven-plugin/</excludedLink>
<!-- SSLHandshakeException but page is opening -->
<excludedLink>http://www.sickboy.cz/checkstyle/</excludedLink>
<!-- Excluded due to Maven Enforcer Plugin's issue #234: https://issues.apache.org/jira/browse/MENFORCER-234-->
<excludedLink>http://maven.apache.org/enforcer/maven-enforcer-plugin</excludedLink>
<!-- Excluded due to Maven Codehaus Plugin's issue #4: https://github.com/mojohaus/mojohaus.github.io/issues/4-->
<excludedLink>http://mojo.codehaus.org/antlr-maven-plugin</excludedLink>
<!-- Excluded due to Maven Build Helper Plugin's issue #3: https://github.com/mojohaus/build-helper-maven-plugin/issues/3-->
<excludedLink>http://mojo.codehaus.org/build-helper-maven-plugin</excludedLink>
<!-- Excluded due to Maven Cobertura Plugin's issue #5: https://github.com/mojohaus/cobertura-maven-plugin/issues/5-->
<excludedLink>http://mojo.codehaus.org/cobertura-maven-plugin/</excludedLink>
<!-- Excluded due to Maven JDepend Plugin's issue #2: https://github.com/mojohaus/jdepend-maven-plugin/issues/2-->
<excludedLink>http://mojo.codehaus.org/jdepend-maven-plugin</excludedLink>
<!-- Excluded due to Maven Taglist Plugin's issue #3: https://github.com/mojohaus/taglist-maven-plugin/issues/3-->
<excludedLink>http://mojo.codehaus.org/taglist-maven-plugin</excludedLink>
<!-- Excluded due to Maven XML Plugin's issue #1: https://github.com/mojohaus/xml-maven-plugin/issues/1-->
<excludedLink>http://mojo.codehaus.org/xml-maven-plugin</excludedLink>
<!-- Excluded due to Maven ANTLR4 Plugin's issue #978: https://github.com/antlr/antlr4/issues/978-->
<excludedLink>http://www.antlr.org/antlr4-maven-plugin</excludedLink>
<!-- Excluded due to Maven Release Plugin's issue #919: https://issues.apache.org/jira/browse/MRELEASE-919-->
<excludedLink>http://maven.apache.org/plugins/maven-release-plugin/</excludedLink>
<!-- Excluded till https://issues.sonatype.org/browse/NEXUS-9643 -->
<excludedLink>http://www.sonatype.com/public-parent/nexus-maven-plugins/nexus-staging/nexus-staging-maven-plugin/</excludedLink>
<!-- This link exists, but it has too much content and github has problems with rendering it quickly, so to avoid ocasional "Read timed out" we exclude it -->
<excludedLink>https://github.com/checkstyle/checkstyle/issues/1555</excludedLink>
<!-- Excluded, because the link is generated by sonar's maven report plugin and we
can not correct the link while it will not be changed in effective pom.xml of the plugin
by sonar's developers. It is not allowed to open issue against sonar's maven report plugin
at sonar's issue tracker: http://jira.codehaus.org/browse/MSONAR
Sonar's mailing lists: http://www.mojohaus.org/sonar-maven-plugin/mail-lists.html-->
<excludedLink>https://sonarqube.com/project/index/com.puppycrawl.tools:checkstyle</excludedLink>
<!-- SSL error, skip validating released "-all" jar on sourceforge as it is uploaded after site generation-->
<excludedLink>http://downloads.sourceforge.net/project/checkstyle/checkstyle/*/checkstyle-*-all.jar</excludedLink>
<!-- Excluded due to linkcheck's issue #22: https://issues.apache.org/jira/browse/MLINKCHECK-22-->
<excludedLink>https://twitter.com/checkstyle_java/</excludedLink>
<!-- Excluded due to linkcheck's issue #23: https://issues.apache.org/jira/browse/MLINKCHECK-23-->
<excludedLink>http://www.kclee.com/clemens/java/javancss</excludedLink>
<!-- It is not a strict link, no needt ovalidate, github gives "429 Too Many Requests" for it -->
<excludedLink>https://github.com/search*</excludedLink>
<!-- till https://github.com/apache/maven-plugins/pull/81 -->
<excludedLink>http://git-scm.com*</excludedLink>
<!-- reason described at https://github.com/checkstyle/checkstyle/issues/3080 -->
<excludedLink>https://www.scm-manager.org/</excludedLink>
<!-- linkcheck plugin can not resolve &amps; inside url -->
<excludedLink>https://flattr.com/submit/</excludedLink>
<!-- Too unstable sites to keep validate them -->
<excludedLink>http://tide.olympe.in/*</excludedLink>
<excludedLink>http://dl.acm.org/*</excludedLink>
<!-- permanent SSLHandshakeException -->
<excludedLink>https://www.codacy.com/</excludedLink>
<!-- permanent SSLHandshakeException https://issues.apache.org/jira/browse/MLINKCHECK-28 -->
<excludedLink>https://sourceforge.net/p/checkstyle/news/feed</excludedLink>
<!-- permanent SSLHandshakeException https://issues.apache.org/jira/browse/MLINKCHECK-28 -->
<excludedLink>https://sourceforge.net/projects/checkstyle/</excludedLink>
<!-- permanent SSLHandshakeException https://issues.apache.org/jira/browse/MLINKCHECK-28 -->
<excludedLink>https://sourceforge.net/projects/checkstyle/files/checkstyle/</excludedLink>
<!-- permanent SSLHandshakeException -->
<excludedLink>https://vim.sourceforge.io/</excludedLink>
<excludedLink>https://vim.sourceforge.io/scripts/script.php?script_id=448</excludedLink>
<!-- permanent SSLException -->
<excludedLink>https://button.flattr.com/flattr-badge-large.png</excludedLink>
<!-- permanent SSLException -->
<excludedLink>https://git-scm.com</excludedLink>
<!-- till https://github.com/gleclaire/findbugs-maven-plugin/pull/69 merged and released -->
<excludedLink>http://gleclaire.github.io/findbugs-maven-plugin/</excludedLink>
<!-- I do not know how to resolve this "302 Found" responce -->
<excludedLink>https://plus.google.com/+CheckstyleJava</excludedLink>
<!-- it permanently gives 404, but image is opening in browser without problems -->
<excludedLink>https://www.ej-technologies.com/images/product_banners/jprofiler_medium.png</excludedLink>
<!-- permanent SSLHandshakeException -->
<excludedLink>https://www.ej-technologies.com/products/jprofiler/overview.html</excludedLink>
<!-- permanent java.net.SocketException : Connection reset -->
<excludedLink>https://www.jarchitect.com</excludedLink>
<!-- permanent: avax.net.ssl.SSLException : Received fatal alert: internal_error -->
<excludedLink>https://salt.bountysource.com/teams/checkstyle</excludedLink>
<excludedLink>https://www.bountysource.com/teams/checkstyle/issues</excludedLink>
<!-- javax.net.ssl.SSLHandshakeException : Received fatal alert: handshake_failure -->
<excludedLink>https://eclipse.org</excludedLink>
</excludedLinks>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${maven.versions.plugin.version}</version>
<reportSets>
<reportSet>
<reports>
<report>dependency-updates-report</report>
<report>plugin-updates-report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<profiles>
<!-- Bring in tools.jar for platforms which provide it
that is required for javadoc doclets that are in use -->
<profile>
<id>default-tools.jar-oracle</id>
<activation>
<property>
<name>java.vendor</name>
<value>Oracle Corporation</value>
</property>
<jdk>[,1.9)</jdk>
</activation>
<dependencies>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>${tools.jar.version}</version>
<scope>system</scope>
<systemPath>${tools.jar.path}</systemPath>
</dependency>
</dependencies>
</profile>
<profile>
<!-- To be used during development. Run the command-->
<!-- mvn -Pno-validations site -->
<id>no-validations</id>
<properties>
<skipTests>true</skipTests>
<checkstyle.ant.skip>true</checkstyle.ant.skip>
<checkstyle.skip>true</checkstyle.skip>
<pmd.skip>true</pmd.skip>
<findbugs.skip>true</findbugs.skip>
<xml.skip>true</xml.skip>
<forbiddenapis.skip>true</forbiddenapis.skip>
<cobertura.skip>true</cobertura.skip>
<maven.javadoc.skip>true</maven.javadoc.skip>
<linkcheck.skip>true</linkcheck.skip>
</properties>
</profile>
<profile>
<!-- To be used during development. Run the command-->
<!-- mvn -Passembly package -->
<id>assembly</id>
<properties>
<skipTests>true</skipTests>
<checkstyle.ant.skip>true</checkstyle.ant.skip>
<checkstyle.skip>true</checkstyle.skip>
<pmd.skip>true</pmd.skip>
<findbugs.skip>true</findbugs.skip>
<xml.skip>true</xml.skip>
<forbiddenapis.skip>true</forbiddenapis.skip>
<cobertura.skip>true</cobertura.skip>
<maven.javadoc.skip>true</maven.javadoc.skip>
<linkcheck.skip>true</linkcheck.skip>
<!-- difference from "no-validations" -->
<maven.site.skip>true</maven.site.skip>
</properties>
<build>
<plugins>
<!-- Generates the site, which is required for assembly -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${maven.site.plugin.version}</version>
<executions>
<execution>
<id>gen-site</id>
<phase>prepare-package</phase>
<goals>
<goal>site</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Creates the all inclusive uber jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>all</shadedClassifierName>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.puppycrawl.tools.checkstyle.Main</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<!-- Creates the binary and source distributions -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<descriptors>
<descriptor>config/assembly-bin.xml</descriptor>
<descriptor>config/assembly-src.xml</descriptor>
</descriptors>
<tarLongFileMode>gnu</tarLongFileMode>
</configuration>
<executions>
<execution>
<id>make-bundle</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>sonar</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.3.0.603</version>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>cobertura-check</id>
<activation>
<jdk>[1.8,)</jdk>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
<quiet>true</quiet>
<formats>
<format>xml</format>
<format>html</format>
</formats>
<check>
<haltOnFailure>true</haltOnFailure>
<branchRate>100</branchRate>
<lineRate>100</lineRate>
<totalBranchRate>84</totalBranchRate>
<totalLineRate>89</totalLineRate>
<regexes>
<regex>
<pattern>com.puppycrawl.tools.checkstyle.grammars.GeneratedJavaRecognizer</pattern>
<branchRate>72</branchRate>
<lineRate>96</lineRate>
</regex>
<regex>
<pattern>com.puppycrawl.tools.checkstyle.grammars.GeneratedJavaLexer</pattern>
<branchRate>79</branchRate>
<lineRate>96</lineRate>
</regex>
<regex>
<pattern>com.puppycrawl.tools.checkstyle.grammars.javadoc.JavadocParser</pattern>
<branchRate>42</branchRate>
<lineRate>53</lineRate>
</regex>
<regex>
<pattern>com.puppycrawl.tools.checkstyle.grammars.javadoc.JavadocLexer</pattern>
<branchRate>64</branchRate>
<lineRate>84</lineRate>
</regex>
</regexes>
</check>
<instrumentation>
<excludes>
<!-- Terence Parr, The Definitive ANTLR 4 Reference, 2.4 Building Language Applications Using Parse Trees:
"To better support access to the elements within specific nodes, ANTLR generates
a RuleNode subclass for each rule. ... Given this description of the concrete types, we could write
code by hand to perform a depth-first walk of the tree. We could perform whatever actions we
wanted as we discovered and finished nodes. Typical operations are things such as
computing results, updating data structures, or generating output."
We don't need these classes as we use only ParseTree methods for walking. -->
<exclude>com/puppycrawl/tools/checkstyle/grammars/javadoc/JavadocParser$*.class</exclude>
<!-- Swing related classes -->
<exclude>com/puppycrawl/tools/checkstyle/gui/BaseCellEditor*.class</exclude>
<exclude>com/puppycrawl/tools/checkstyle/gui/CodeSelector.class</exclude>
<exclude>com/puppycrawl/tools/checkstyle/gui/TreeTable*.class</exclude>
<exclude>com/puppycrawl/tools/checkstyle/gui/ListToTreeSelectionModelWrapper*.class</exclude>
<exclude>com/puppycrawl/tools/checkstyle/gui/Main*.class</exclude>
<exclude>com/puppycrawl/tools/checkstyle/gui/MainFrame*.class</exclude>
<exclude>com/puppycrawl/tools/checkstyle/gui/ParseTreeTableModel*.class</exclude>
<exclude>com/puppycrawl/tools/checkstyle/gui/TreeTableCellRenderer*.class</exclude>
<exclude>com/puppycrawl/tools/checkstyle/gui/TreeTableModelAdapter*.class</exclude>
<!-- deprecated classes -->
<exclude>com/puppycrawl/tools/checkstyle/checks/naming/AbstractTypeParameterNameCheck.class</exclude>
</excludes>
</instrumentation>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checks-misc</id>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.checks.ArrayTypeStyleCheck</param>
<param>com.puppycrawl.tools.checkstyle.checks.AvoidEscapedUnicodeCharactersCheck</param>
<param>com.puppycrawl.tools.checkstyle.checks.DescendantTokenCheck</param>
<param>com.puppycrawl.tools.checkstyle.checks.FileSetCheckLifecycle</param>
<param>com.puppycrawl.tools.checkstyle.checks.FinalParametersCheck</param>
<param>com.puppycrawl.tools.checkstyle.checks.NewlineAtEndOfFileCheck</param>
<param>com.puppycrawl.tools.checkstyle.checks.OuterTypeFilenameCheck</param>
<!-- this class will be rewritten in future releases -->
<!--<param>com.puppycrawl.tools.checkstyle.checks.SuppressWarningsHolder</param>-->
<param>com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck</param>
<param>com.puppycrawl.tools.checkstyle.checks.TrailingCommentCheck</param>
<param>com.puppycrawl.tools.checkstyle.checks.TranslationCheck</param>
<param>com.puppycrawl.tools.checkstyle.checks.UncommentedMainCheck</param>
<param>com.puppycrawl.tools.checkstyle.checks.UniquePropertiesCheck</param>
<param>com.puppycrawl.tools.checkstyle.checks.UpperEllCheck</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.checks.ArrayTypeStyleCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.AvoidEscapedUnicodeCharactersCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.DescendantTokenCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.FinalParametersCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.NewlineAtEndOfFileCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.OuterTypeFilenameCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.SuppressWarningsHolderTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.TodoCommentCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.TrailingCommentCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.TranslationCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.UncommentedMainCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.UniquePropertiesCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.UpperEllCheckTest</param>
</targetTests>
<mutationThreshold>99</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checks-annotation</id>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationLocationCheck</param>
<param>com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationOnSameLineCheck</param>
<param>com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationUseStyleCheck</param>
<param>com.puppycrawl.tools.checkstyle.checks.annotation.MissingDeprecatedCheck</param>
<param>com.puppycrawl.tools.checkstyle.checks.annotation.MissingOverrideCheck</param>
<param>com.puppycrawl.tools.checkstyle.checks.annotation.PackageAnnotationCheck</param>
<param>com.puppycrawl.tools.checkstyle.checks.annotation.SuppressWarningsCheck</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationLocationCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationOnSameLineCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.annotation.AnnotationUseStyleCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.annotation.MissingDeprecatedCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.annotation.MissingOverrideCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.annotation.PackageAnnotationCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.annotation.SuppressWarningsCheckTest</param>
</targetTests>
<mutationThreshold>100</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checks-blocks</id>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.checks.blocks.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.checks.blocks.*</param>
</targetTests>
<mutationThreshold>97</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checks-coding</id>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.checks.coding.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.checks.coding.*</param>
</targetTests>
<mutationThreshold>97</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checks-design</id>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.checks.design.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.checks.design.*</param>
</targetTests>
<mutationThreshold>100</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checks-header</id>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.checks.header.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.checks.header.*</param>
</targetTests>
<mutationThreshold>100</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checks-imports</id>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.checks.imports.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.checks.imports.*</param>
</targetTests>
<mutationThreshold>96</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checks-indentation</id>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.checks.indentation.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.checks.indentation.*</param>
</targetTests>
<mutationThreshold>94</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checks-javadoc</id>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.checks.javadoc.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.checks.javadoc.*</param>
</targetTests>
<mutationThreshold>95</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checks-metrics</id>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.checks.metrics.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.checks.metrics.*</param>
</targetTests>
<mutationThreshold>97</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checks-modifier</id>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.checks.modifier.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.checks.modifier.*</param>
</targetTests>
<mutationThreshold>100</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checks-naming</id>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.checks.naming.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.checks.naming.*</param>
</targetTests>
<excludedClasses>
<!-- deprecated class -->
<param>com.puppycrawl.tools.checkstyle.checks.naming.AbstractTypeParameterNameCheck</param>
</excludedClasses>
<mutationThreshold>100</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checks-regexp</id>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.checks.regexp.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.checks.regexp.*</param>
</targetTests>
<mutationThreshold>100</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checks-sizes</id>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.checks.sizes.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.checks.sizes.*</param>
</targetTests>
<mutationThreshold>100</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checks-whitespace</id>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.checks.whitespace.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.checks.whitespace.*</param>
</targetTests>
<mutationThreshold>99</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Non-checks code profiles -->
<profile>
<id>pitest-checkstyle-common</id>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.AuditEventDefaultFormatter</param>
<param>com.puppycrawl.tools.checkstyle.ConfigurationLoader*</param>
<param>com.puppycrawl.tools.checkstyle.PackageNamesLoader</param>
<param>com.puppycrawl.tools.checkstyle.DefaultConfiguration</param>
<param>com.puppycrawl.tools.checkstyle.DefaultContext</param>
<param>com.puppycrawl.tools.checkstyle.DefaultLogger</param>
<param>com.puppycrawl.tools.checkstyle.Definitions</param>
<param>com.puppycrawl.tools.checkstyle.XMLLogger</param>
<param>com.puppycrawl.tools.checkstyle.PackageObjectFactory</param>
<param>com.puppycrawl.tools.checkstyle.PropertiesExpander</param>
<param>com.puppycrawl.tools.checkstyle.PropertyCacheFile</param>
<param>com.puppycrawl.tools.checkstyle.Checker</param>
<param>com.puppycrawl.tools.checkstyle.ant.*</param>
<param>com.puppycrawl.tools.checkstyle.doclets.*</param>
<param>com.puppycrawl.tools.checkstyle.ThreadModeSettings</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.AuditEventDefaultFormatterTest</param>
<param>com.puppycrawl.tools.checkstyle.ConfigurationLoaderTest</param>
<param>com.puppycrawl.tools.checkstyle.PackageNamesLoaderTest</param>
<param>com.puppycrawl.tools.checkstyle.DefaultConfigurationTest</param>
<param>com.puppycrawl.tools.checkstyle.DefaultLoggerTest</param>
<param>com.puppycrawl.tools.checkstyle.DefinitionsTest</param>
<param>com.puppycrawl.tools.checkstyle.XMLLoggerTest</param>
<param>com.puppycrawl.tools.checkstyle.PackageObjectFactoryTest</param>
<param>com.puppycrawl.tools.checkstyle.PropertiesExpanderTest</param>
<param>com.puppycrawl.tools.checkstyle.PropertyCacheFileTest</param>
<param>com.puppycrawl.tools.checkstyle.CheckerTest</param>
<param>com.puppycrawl.tools.checkstyle.ant.*</param>
<param>com.puppycrawl.tools.checkstyle.doclets.*</param>
<param>com.puppycrawl.tools.checkstyle.ThreadModeSettingsTest</param>
</targetTests>
<mutationThreshold>100</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checkstyle-main</id>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.Main</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.MainTest</param>
</targetTests>
<mutationThreshold>100</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checkstyle-tree-walker</id>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.JavadocDetailNodeParser</param>
<param>com.puppycrawl.tools.checkstyle.DetailNodeTreeStringPrinter</param>
<param>com.puppycrawl.tools.checkstyle.AstTreeStringPrinter</param>
<param>com.puppycrawl.tools.checkstyle.TreeWalker</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.DetailNodeTreeStringPrinterTest</param>
<param>com.puppycrawl.tools.checkstyle.AstTreeStringPrinterTest</param>
<param>com.puppycrawl.tools.checkstyle.TreeWalkerTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.coding.PackageDeclarationCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.imports.ImportControlCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.indentation.IndentationCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.javadoc.*</param>
<param>com.puppycrawl.tools.checkstyle.checks.metrics.ClassDataAbstractionCouplingCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.naming.TypeNameCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.sizes.MethodCountCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.whitespace.SingleSpaceSeparatorCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.whitespace.EmptyLineSeparatorCheckTest</param>
</targetTests>
<excludedMethods>
<!-- destroy in TreeWalker was added in case module had to free up resources before ending,
but currently it does nothing, so we cannot check it. If we remove this destroy we would have
to remove all of them as they are chained together, so we just exclude it from pitest check. -->
<param>destroy</param>
</excludedMethods>
<mutationThreshold>100</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checkstyle-api</id>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.api.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.api.*</param>
<param>com.puppycrawl.tools.checkstyle.grammars.comments.CommentsTest</param>
<param>com.puppycrawl.tools.checkstyle.filefilters.*</param>
<param>com.puppycrawl.tools.checkstyle.filters.*</param>
<param>com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.imports.ImportControlCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.javadoc.WriteTagCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.naming.ParameterNameCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.ConfigurationLoaderTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.TranslationCheckTest</param>
</targetTests>
<excludedMethods>
<!--cause of https://github.com/checkstyle/checkstyle/issues/3605-->
<param>addFeaturesForVerySecureJavaInstallations</param>
</excludedMethods>
<avoidCallsTo>
<!--cause of https://github.com/checkstyle/checkstyle/issues/3605-->
<avoidCallsTo>com.puppycrawl.tools.checkstyle.api.AbstractLoader$FeaturesForVerySecureJavaInstallations</avoidCallsTo>
</avoidCallsTo>
<mutationThreshold>100</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checkstyle-filters</id>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.filefilters.*</param>
<param>com.puppycrawl.tools.checkstyle.filters.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.filefilters.*</param>
<param>com.puppycrawl.tools.checkstyle.filters.*</param>
</targetTests>
<mutationThreshold>100</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checkstyle-utils</id>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.utils.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.utils.*</param>
<param>com.puppycrawl.tools.checkstyle.checks.coding.*</param>
<param>com.puppycrawl.tools.checkstyle.AstTreeStringPrinterTest</param>
<param>com.puppycrawl.tools.checkstyle.ConfigurationLoaderTest</param>
<param>com.puppycrawl.tools.checkstyle.DetailNodeTreeStringPrinterTest</param>
<param>com.puppycrawl.tools.checkstyle.PackageObjectFactoryTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.FinalParametersCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.TranslationCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.coding.MultipleVariableDeclarationsCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.design.FinalClassCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.javadoc.*</param>
<param>com.puppycrawl.tools.checkstyle.checks.regexp.RegexpOnFilenameCheckTest</param>
<param>com.puppycrawl.tools.checkstyle.checks.whitespace.*</param>
<param>com.puppycrawl.tools.checkstyle.filters.SuppressionCommentFilter</param>
<param>com.puppycrawl.tools.checkstyle.filters.SuppressWithNearbyCommentFilterTest</param>
<param>com.puppycrawl.tools.checkstyle.internal.AllChecksTest</param>
</targetTests>
<mutationThreshold>100</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checkstyle-gui</id>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.gui.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.gui.*</param>
</targetTests>
<mutationThreshold>30</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>eclipse-compiler</id>
<dependencies>
<dependency>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.annotation</artifactId>
<version>2.1.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<configuration>
<executable>.ci/eclipse-compiler-javac.sh</executable>
<classpathScope>test</classpathScope>
<arguments>
<classpath />
</arguments>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pitest-checkstyle-xpath</id>
<build>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.plugin.version}</version>
<configuration>
<targetClasses>
<param>com.puppycrawl.tools.checkstyle.xpath.*</param>
</targetClasses>
<targetTests>
<param>com.puppycrawl.tools.checkstyle.xpath.*</param>
</targetTests>
<mutationThreshold>100</mutationThreshold>
<timeoutFactor>${pitest.plugin.timeout.factor}</timeoutFactor>
<timeoutConstant>${pitest.plugin.timeout.constant}</timeoutConstant>
<threads>${pitest.plugin.threads}</threads>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>