drools-build-parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>org.kie</groupId> <artifactId>drools-build-parent</artifactId> <version>10.0.0</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <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"> <parent> <artifactId>drools-parent</artifactId> <groupId>org.kie</groupId> <version>10.0.0</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>drools-build-parent</artifactId> <name>Drools :: Build Parent</name> <packaging>pom</packaging> <properties> <maven.compiler.release>17</maven.compiler.release> <maven.compiler.source>${maven.compiler.release}</maven.compiler.source> <maven.compiler.target>${maven.compiler.release}</maven.compiler.target> <surefire.forkCount>1</surefire.forkCount> <alphanetworkCompilerEnabled>false</alphanetworkCompilerEnabled> <checkstyle.failOnViolation>true</checkstyle.failOnViolation> <checkstyle.logViolationsToConsole>true</checkstyle.logViolationsToConsole> <drools.exclude.checkstyle></drools.exclude.checkstyle> <victims.updates>weekly</victims.updates> <illegaltransitivereportonly>false</illegaltransitivereportonly> <!-- CONVENTIONS: - A version property must be specified in the format "version.{groupId}", optionally with a suffix to make it unique. - Version properties must be sorted alphabetically (other form of sorting were found to be unclear and ambiguous). --> <version.ch.qos.logback>1.4.14</version.ch.qos.logback> <version.commons-codec>1.16.1</version.commons-codec> <version.commons-collections>3.2.2</version.commons-collections> <version.commons-logging>1.1.1</version.commons-logging> <version.commons-io>2.15.1</version.commons-io> <version.common-text>1.11.0</version.common-text> <version.com.fasterxml.jackson>2.16.1</version.com.fasterxml.jackson> <version.com.fasterxml.jackson.databind>2.16.1</version.com.fasterxml.jackson.databind> <version.com.fasterxml.jackson.annotations>2.16.1</version.com.fasterxml.jackson.annotations> <version.com.github.victools>4.31.0</version.com.github.victools> <!-- victools should align with Jackson if possible --> <version.com.miglayout>3.7.4</version.com.miglayout> <version.domino-slf4j-logger>1.0.1</version.domino-slf4j-logger> <version.com.google.protobuf>3.25.0</version.com.google.protobuf> <version.com.h2database>2.2.220</version.com.h2database> <version.com.networknt.json-schema-validator>1.0.86</version.com.networknt.json-schema-validator> <version.com.sun.xml.bind>4.0.4</version.com.sun.xml.bind> <version.com.thoughtworks.xstream>1.4.20</version.com.thoughtworks.xstream> <version.guru.nidi>0.18.0</version.guru.nidi> <version.info.picocli>4.7.5</version.info.picocli> <version.io.micrometer>1.12.2</version.io.micrometer> <version.io.quarkus>3.8.4</version.io.quarkus> <version.io.smallrye.openapi.core>3.10.0</version.io.smallrye.openapi.core> <version.it.unimi.dsi.fastutil>8.5.11</version.it.unimi.dsi.fastutil> <version.junit>4.13.1</version.junit> <version.net.java.dev.glazedlists>1.8.0</version.net.java.dev.glazedlists> <version.antlr>2.7.7</version.antlr> <version.org.antlr>3.5.2</version.org.antlr> <version.org.antlr.ST4>4.0.7</version.org.antlr.ST4> <version.org.apache.ant>1.10.11</version.org.apache.ant> <version.org.apache.commons.lang3>3.14.0</version.org.apache.commons.lang3> <version.org.apache.commons.math3>3.4.1</version.org.apache.commons.math3> <version.org.apache.httpcomponents.httpcore>4.4.16</version.org.apache.httpcomponents.httpcore> <version.org.apache.maven>3.8.6</version.org.apache.maven> <version.org.apache.maven.resolver>1.7.3</version.org.apache.maven.resolver> <version.org.apache.maven.wagon>3.5.3</version.org.apache.maven.wagon> <version.org.apache.pdfbox>2.0.28</version.org.apache.pdfbox> <version.org.apache.poi>5.2.5</version.org.apache.poi> <version.org.apache.tomcat.tomcat-dbcp>10.1.7</version.org.apache.tomcat.tomcat-dbcp> <version.org.assertj>3.24.2</version.org.assertj> <version.org.eclipse.jdt>3.33.0</version.org.eclipse.jdt> <version.org.freemarker>2.3.32</version.org.freemarker> <version.org.glassfish.jaxb>4.0.4</version.org.glassfish.jaxb> <!--This needs to be in sync with JUnit--> <version.org.hamcrest>2.2</version.org.hamcrest> <version.org.hsqldb>2.3.0</version.org.hsqldb> <version.org.infinispan>14.0.25.Final</version.org.infinispan> <version.org.javassist>3.26.0-GA</version.org.javassist> <version.org.jboss.narayana.tomcat>7.0.1.Final</version.org.jboss.narayana.tomcat> <version.org.jboss.logging>3.5.3.Final</version.org.jboss.logging> <version.org.jboss.transaction.spi>8.0.0.Final</version.org.jboss.transaction.spi> <version.org.jboss.weld.weld>3.1.6.Final</version.org.jboss.weld.weld> <version.org.eclipse.microprofile.config>3.0.3</version.org.eclipse.microprofile.config> <version.jakarta.enterprise.cdi-api>4.0.1</version.jakarta.enterprise.cdi-api> <version.jakarta.activation>2.0.1</version.jakarta.activation> <version.jakarta.activation-api>2.1.2</version.jakarta.activation-api> <version.jakarta.inject-api>2.0.1</version.jakarta.inject-api> <version.jakarta.annotation-api>2.1.1</version.jakarta.annotation-api> <version.jakarta.transaction-api>2.0.1</version.jakarta.transaction-api> <version.jakarta.persistence-api>3.1.0</version.jakarta.persistence-api> <version.jakarta.xml.bind-api>4.0.1</version.jakarta.xml.bind-api> <version.jakarta.json.bind-api>3.0.0</version.jakarta.json.bind-api> <version.jakarta.json>1.1.5</version.jakarta.json> <version.jakarta.json-api>2.1.3</version.jakarta.json-api> <version.org.apache.openjpa>4.0.0</version.org.apache.openjpa> <version.org.jpmml.model>1.6.4</version.org.jpmml.model> <!-- jpmml-model BSD 3C license - ATTENTION 1.5.1 intentional, because 1.5.1 evaluators works with 1.5.1 --> <version.org.junit>5.10.2</version.org.junit> <version.org.mvel>2.5.1.Final</version.org.mvel> <version.org.powermock>2.0.7</version.org.powermock> <version.org.slf4j>2.0.6</version.org.slf4j> <!-- simple-jndi is a small library that helps us avoid JNDI error messages during testing --> <version.simple-jndi>0.11.4.1</version.simple-jndi> <version.xerces>2.12.0.SP04</version.xerces> <!-- External dependency versions bom --> <!-- ################################################################################ --> <!-- New and overwritten dependencies --> <!-- ################################################################################ --> <version.org.antlr4>4.10.1</version.org.antlr4> <version.org.jboss.arquillian.selenium>3.13.0</version.org.jboss.arquillian.selenium> <version.io.swagger>1.6.2</version.io.swagger> <version.io.swagger.core.v3>2.2.19</version.io.swagger.core.v3> <version.io.swagger.parser.v3>2.1.19</version.io.swagger.parser.v3> <version.io.swagger.swagger-parser>1.0.55</version.io.swagger.swagger-parser> <version.org.xmlunit>2.10.0</version.org.xmlunit> <!-- therefore the property is rewritten in that repository parent --> <version.org.asciidoctor.asciidoctorj>2.2.0</version.org.asciidoctor.asciidoctorj> <version.org.asciidoctor.asciidoctorj-pdf>1.5.0</version.org.asciidoctor.asciidoctorj-pdf> <version.org.w3c.dom>2.3.0-jaxb-1.0.6</version.org.w3c.dom> <version.org.mockito>5.2.0</version.org.mockito> <!-- Version of JMH --> <version.org.openjdk.jmh>1.21</version.org.openjdk.jmh> <maven.build.timestamp.format>yyyyMMddHHmm</maven.build.timestamp.format> <!-- This property needs to be defined in all modules that use the packaging 'jar' or 'bundle'. It is being used by different plugins to make sure the module/bundle names are consistent. --> <java.module.name/> <!-- Plugin version overrides. IMPORTANT: always explain the reason for overriding the plugin version! --> <!-- Surefire version 2.19.1 coming from parent is buggy and kie-osgi tests in droolsjbpm-integration are failing because of that. --> <version.surefire.plugin>2.22.1</version.surefire.plugin> <!-- Add for kie-maven-plugin --> <version.plugin.plugin>3.6.4</version.plugin.plugin> <version.plugin.annotations>3.7.1</version.plugin.annotations> <version.artifact.transfer>0.9.1</version.artifact.transfer> <version.shared.utils>3.3.4</version.shared.utils> <version.common.compress>1.26.1</version.common.compress> <version.common.exec>1.3</version.common.exec> <!-- --> <!-- Jacoco plugin configurations --> <jacoco.haltOnFailure>false</jacoco.haltOnFailure> <jacoco.line.coveredratio.minimum>0.9</jacoco.line.coveredratio.minimum> <version.jacoco.plugin>0.8.11</version.jacoco.plugin> <!-- TODO: remove this once all repositories comply to the defined checkstyle rules --> <checkstyle.failOnViolation>false</checkstyle.failOnViolation> <checkstyle.logViolationsToConsole>false</checkstyle.logViolationsToConsole> <checkstyle.header.template>.*</checkstyle.header.template> <checkstyle.header.extensions>java</checkstyle.header.extensions> <enforcer.failOnDuplicatedClasses>true</enforcer.failOnDuplicatedClasses> <enforcer.failOnBannedDependencies>true</enforcer.failOnBannedDependencies> <!-- Set to "true" on every project that has no violations. --> <spotbugs.failOnViolation>false</spotbugs.failOnViolation> <!-- replaces findbugs-maven-plugin --> <version.com.github.spotbugs-maven-plugin>3.1.8</version.com.github.spotbugs-maven-plugin> <maven.min.version>3.8.1</maven.min.version> <!-- property for productisation to know the last released version --> <latestReleasedVersionFromThisBranch>notYetReleased</latestReleasedVersionFromThisBranch> <version.compiler.plugin>3.8.1</version.compiler.plugin> <version.shade.plugin>3.3.0</version.shade.plugin> <version.net.byte-buddy>1.14.11</version.net.byte-buddy> <version.org.postgresql>42.7.2</version.org.postgresql> <version.ch.obermuhlner>2.0.1</version.ch.obermuhlner> <version.io.smallrye.jandex>3.1.6</version.io.smallrye.jandex> <version.org.eclipse.yasson>3.0.3</version.org.eclipse.yasson> <version.com.github.javaparser>3.25.8</version.com.github.javaparser> <version.com.google.guava>32.0.1-jre</version.com.google.guava> <!-- JaCoCo coverage data file location --> <!--suppress UnresolvedMavenProperty --> <project.root.dir>${maven.multiModuleProjectDirectory}</project.root.dir> <jacoco.exec.file>${project.root.dir}/target/jacoco.exec</jacoco.exec.file> <version.org.awaitility>4.2.0</version.org.awaitility> <version.io.github.bonigarcia>5.1.1</version.io.github.bonigarcia> <!-- DROOLS-7140 Drools 8 enforce JDK and Maven versions as a rule --> <version.jdk>${maven.compiler.release}</version.jdk> <version.maven>${version.org.apache.maven}</version.maven> <!-- These are added as part of the migration from JBoss to Apache parent pom.xml. They may be extracted to a KIE parent bom. --> <version.maven-checkstyle>3.3.0</version.maven-checkstyle> <version.build.helper.maven.plugin>3.4.0</version.build.helper.maven.plugin> <version.maven-javadoc-plugin.override>3.6.2</version.maven-javadoc-plugin.override> </properties> <dependencyManagement> <dependencies> <!-- Keep in sync with groupId org.slf4j --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>${version.ch.qos.logback}</version> </dependency> <!-- Keep in sync with groupId org.apache.commons --> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>${version.commons-codec}</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>${version.commons-collections}</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>${version.commons-io}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-text</artifactId> <version>${version.common-text}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${version.com.fasterxml.jackson}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${version.com.fasterxml.jackson.databind}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${version.com.fasterxml.jackson}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-jakarta-xmlbind-annotations</artifactId> <version>${version.com.fasterxml.jackson.annotations}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-yaml</artifactId> <version>${version.com.fasterxml.jackson}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.jakarta.rs</groupId> <artifactId>jackson-jakarta-rs-json-provider</artifactId> <version>${version.com.fasterxml.jackson}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-base</artifactId> <version>${version.com.fasterxml.jackson}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-smile</artifactId> <version>${version.com.fasterxml.jackson}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-cbor</artifactId> <version>${version.com.fasterxml.jackson}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> <version>${version.com.fasterxml.jackson}</version> </dependency> <dependency> <groupId>com.github.victools</groupId> <artifactId>jsonschema-generator</artifactId> <version>${version.com.github.victools}</version> </dependency> <dependency> <groupId>com.github.victools</groupId> <artifactId>jsonschema-module-jackson</artifactId> <version>${version.com.github.victools}</version> <exclusions> <exclusion> <groupId>com.fasterxml</groupId> <artifactId>classmate</artifactId> </exclusion> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> </exclusion> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>${version.com.google.protobuf}</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>${version.com.h2database}</version> </dependency> <dependency> <groupId>com.networknt</groupId> <artifactId>json-schema-validator</artifactId> <version>${version.com.networknt.json-schema-validator}</version> <scope>test</scope> <!-- used by JUnit test suite for JSON Schema conformance --> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-core</artifactId> <version>${version.com.sun.xml.bind}</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-xjc</artifactId> <version>${version.com.sun.xml.bind}</version> <exclusions> <exclusion> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>${version.com.thoughtworks.xstream}</version> </dependency> <dependency> <groupId>guru.nidi</groupId> <artifactId>graphviz-java</artifactId> <version>${version.guru.nidi}</version> </dependency> <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> </dependency> <dependency> <groupId>info.picocli</groupId> <artifactId>picocli</artifactId> <version>${version.info.picocli}</version> </dependency> <dependency> <groupId>io.smallrye</groupId> <artifactId>smallrye-open-api-core</artifactId> <version>${version.io.smallrye.openapi.core}</version> </dependency> <dependency> <groupId>org.eclipse.parsson</groupId> <artifactId>parsson</artifactId> <version>${version.jakarta.json}</version> </dependency> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <version>${version.org.glassfish.jaxb}</version> <exclusions> <exclusion> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> </exclusion> <exclusion> <groupId>javax.activation</groupId> <artifactId>javax.activation-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-xjc</artifactId> <version>${version.org.glassfish.jaxb}</version> </dependency> <dependency> <groupId>jakarta.json.bind</groupId> <artifactId>jakarta.json.bind-api</artifactId> <version>${version.jakarta.json.bind-api}</version> </dependency> <dependency> <groupId>jakarta.json</groupId> <artifactId>jakarta.json-api</artifactId> <version>${version.jakarta.json-api}</version> </dependency> <dependency> <groupId>org.eclipse.angus</groupId> <artifactId>angus-activation</artifactId> <version>${version.jakarta.activation}</version> </dependency> <dependency> <groupId>jakarta.activation</groupId> <artifactId>jakarta.activation-api</artifactId> <version>${version.jakarta.activation-api}</version> </dependency> <dependency> <groupId>jakarta.annotation</groupId> <artifactId>jakarta.annotation-api</artifactId> <version>${version.jakarta.annotation-api}</version> </dependency> <dependency> <groupId>jakarta.transaction</groupId> <artifactId>jakarta.transaction-api</artifactId> <version>${version.jakarta.transaction-api}</version> </dependency> <dependency> <groupId>jakarta.persistence</groupId> <artifactId>jakarta.persistence-api</artifactId> <version>${version.jakarta.persistence-api}</version> </dependency> <dependency> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> <version>${version.jakarta.xml.bind-api}</version> </dependency> <dependency> <groupId>jakarta.inject</groupId> <artifactId>jakarta.inject-api</artifactId> <version>${version.jakarta.inject-api}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${version.junit}</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${version.org.junit}</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <version>${version.org.junit}</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${version.org.junit}</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-params</artifactId> <version>${version.org.junit}</version> </dependency> <dependency> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> <version>${version.org.junit}</version> </dependency> <dependency> <groupId>net.java.dev.glazedlists</groupId> <artifactId>glazedlists_java15</artifactId> <version>${version.net.java.dev.glazedlists}</version> </dependency> <!--Both antlr:antlr and org.antlr:antlr-runtime is needed. They are completely different.--> <dependency> <groupId>antlr</groupId> <artifactId>antlr</artifactId> <version>${version.antlr}</version> </dependency> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr-runtime</artifactId> <version>${version.org.antlr}</version> <exclusions> <exclusion> <groupId>org.antlr</groupId> <artifactId>stringtemplate</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr</artifactId> <version>${version.org.antlr}</version> </dependency> <dependency> <groupId>org.antlr</groupId> <artifactId>gunit</artifactId> <version>${version.org.antlr}</version> <exclusions> <exclusion> <groupId>org.antlr</groupId> <artifactId>stringtemplate</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.antlr</groupId> <artifactId>ST4</artifactId> <version>${version.org.antlr.ST4}</version> </dependency> <dependency> <groupId>org.dominokit</groupId> <artifactId>domino-slf4j-logger</artifactId> <version>${version.domino-slf4j-logger}</version> </dependency> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>${version.org.apache.ant}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>${version.common.compress}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-exec</artifactId> <version>${version.common.exec}</version> </dependency> <!-- Keep in sync with groupId commons-* --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${version.org.apache.commons.lang3}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-math3</artifactId> <version>${version.org.apache.commons.math3}</version> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-artifact</artifactId> <version>${version.org.apache.maven}</version> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-plugin-api</artifactId> <version>${version.org.apache.maven}</version> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-core</artifactId> <version>${version.org.apache.maven}</version> <exclusions> <exclusion> <groupId>javax.enterprise</groupId> <artifactId>cdi-api</artifactId> </exclusion> <exclusion> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> </exclusion> <exclusion> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> </exclusion> <exclusion> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-model</artifactId> <version>${version.org.apache.maven}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-compat</artifactId> <version>${version.org.apache.maven}</version> </dependency> <dependency> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver-api</artifactId> <version>${version.org.apache.maven.resolver}</version> </dependency> <dependency> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver-impl</artifactId> <version>${version.org.apache.maven.resolver}</version> <exclusions> <exclusion> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver-spi</artifactId> <version>${version.org.apache.maven.resolver}</version> </dependency> <dependency> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver-connector-basic</artifactId> <version>${version.org.apache.maven.resolver}</version> </dependency> <dependency> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver-transport-wagon</artifactId> <version>${version.org.apache.maven.resolver}</version> </dependency> <dependency> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver-transport-file</artifactId> <version>${version.org.apache.maven.resolver}</version> </dependency> <dependency> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver-transport-http</artifactId> <version>${version.org.apache.maven.resolver}</version> </dependency> <dependency> <groupId>org.apache.maven.plugin-tools</groupId> <artifactId>maven-plugin-annotations</artifactId> <version>${version.plugin.annotations}</version> </dependency> <dependency> <groupId>org.apache.maven.shared</groupId> <artifactId>maven-artifact-transfer</artifactId> <version>${version.artifact.transfer}</version> </dependency> <dependency> <groupId>org.apache.maven.shared</groupId> <artifactId>maven-shared-utils</artifactId> <version>${version.shared.utils}</version> </dependency> <dependency><!-- Overwrites transitive dependencies of maven-plugin-api:3.0.3 with a lower version --> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-provider-api</artifactId> <version>${version.org.apache.maven.wagon}</version> </dependency> <dependency> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-http</artifactId> <version>${version.org.apache.maven.wagon}</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>${version.org.apache.poi}</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>${version.org.apache.poi}</version> </dependency> <dependency> <groupId>org.asciidoctor</groupId> <artifactId>asciidoctorj</artifactId> <version>${version.org.asciidoctor.asciidoctorj}</version> <exclusions> <exclusion> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> <version>${version.org.assertj}</version> </dependency> <dependency> <groupId>org.eclipse.jdt</groupId> <artifactId>ecj</artifactId> <version>${version.org.eclipse.jdt}</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>${version.org.freemarker}</version> </dependency> <!--Hamcrest should be versioned with JUnit, as they are related--> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-library</artifactId> <version>${version.org.hamcrest}</version> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> <version>${version.org.hamcrest}</version> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>${version.org.javassist}</version> </dependency> <!-- Do not add mockito-all as it is uberjar! --> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>${version.org.mockito}</version> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-inline</artifactId> <version>${version.org.mockito}</version> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-junit-jupiter</artifactId> <version>${version.org.mockito}</version> </dependency> <dependency> <groupId>org.mvel</groupId> <artifactId>mvel2</artifactId> <version>${version.org.mvel}</version> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito2</artifactId> <version>${version.org.powermock}</version> <exclusions> <!-- mockito-all is ugly uberjar. Users of powermock need to depend on on mockito-core explicitly. Once we upgrade powermock to version that contains https://github.com/jayway/powermock/pull/596, this exclude can be removed, as wel as explit dependencies on mockito-core. --> <exclusion> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4</artifactId> <version>${version.org.powermock}</version> </dependency> <!-- Keep in sync with groupId ch.qos.logback --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${version.org.slf4j}</version> </dependency> <dependency><!-- Not depended on directly. Overwrite the lower version used by weld-core --> <groupId>org.slf4j</groupId> <artifactId>slf4j-ext</artifactId> <version>${version.org.slf4j}</version> </dependency> <dependency><!-- TODO don't use this --> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>${version.org.slf4j}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${version.org.slf4j}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> <version>${version.org.slf4j}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-jdk14</artifactId> <version>${version.org.slf4j}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${version.org.slf4j}</version> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>xerces</groupId> <artifactId>xercesImpl</artifactId> <version>${version.xerces}</version> </dependency> <!--JMH (Benchmarks)--> <dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-core</artifactId> <version>${version.org.openjdk.jmh}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-generator-annprocess</artifactId> <version>${version.org.openjdk.jmh}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr4-runtime</artifactId> <version>${version.org.antlr4}</version> </dependency> <dependency> <groupId>org.jacoco</groupId> <artifactId>org.jacoco.agent</artifactId> <version>${version.jacoco.plugin}</version> <classifier>runtime</classifier> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-core</artifactId> <version>${version.io.swagger}</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-jaxrs</artifactId> <version>${version.io.swagger}</version> <exclusions> <exclusion> <groupId>javax.ws.rs</groupId> <artifactId>jsr311-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>${version.io.swagger}</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> <version>${version.io.swagger}</version> </dependency> <!-- OAS v3 --> <dependency> <groupId>io.swagger.core.v3</groupId> <artifactId>swagger-annotations</artifactId> <version>${version.io.swagger.core.v3}</version> </dependency> <dependency> <groupId>io.swagger.parser.v3</groupId> <artifactId>swagger-parser</artifactId> <version>${version.io.swagger.parser.v3}</version> <scope>test</scope> <exclusions><!-- banned for kie-server tests: --> <exclusion> <groupId>javax.mail</groupId> <artifactId>mailapi</artifactId> </exclusion> <exclusion> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> </exclusion> </exclusions> </dependency> <!-- swagger parser --> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-parser</artifactId> <version>${version.io.swagger.swagger-parser}</version> </dependency> <dependency> <groupId>org.jboss.narayana.jta</groupId> <artifactId>narayana-jta</artifactId> <version>${version.org.jboss.narayana.tomcat}</version> <exclusions> <exclusion> <groupId>org.jboss.spec.javax.resource</groupId> <artifactId>jboss-connector-api_1.7_spec</artifactId> </exclusion> <exclusion> <groupId>org.jboss</groupId> <artifactId>jboss-transaction-spi</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.jboss</groupId> <artifactId>jboss-transaction-spi</artifactId> <version>${version.org.jboss.transaction.spi}</version> <exclusions> <exclusion> <groupId>jakarta.transaction</groupId> <artifactId>jakarta.transaction-api</artifactId> </exclusion> <exclusion> <groupId>jakarta.resource</groupId> <artifactId>jakarta.resource-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.xmlunit</groupId> <artifactId>xmlunit-core</artifactId> <version>${version.org.xmlunit}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.xmlunit</groupId> <artifactId>xmlunit-matchers</artifactId> <version>${version.org.xmlunit}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.xmlunit</groupId> <artifactId>xmlunit-assertj</artifactId> <version>${version.org.xmlunit}</version> <scope>test</scope> </dependency> <!-- Data source management libraries --> <dependency> <groupId>net.bytebuddy</groupId> <artifactId>byte-buddy</artifactId> <version>${version.net.byte-buddy}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> <version>${version.org.slf4j}</version> </dependency> <dependency> <groupId>org.w3c</groupId> <artifactId>dom</artifactId> <version>${version.org.w3c.dom}</version> </dependency> <!-- kie server controller over websockets --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${version.ch.qos.logback}</version> </dependency> <dependency> <groupId>jakarta.enterprise</groupId> <artifactId>jakarta.enterprise.cdi-api</artifactId> <version>${version.jakarta.enterprise.cdi-api}</version> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>${version.org.postgresql}</version> <scope>runtime</scope> </dependency> <!-- used by DMN for BigDecimal arithmetics --> <dependency> <groupId>ch.obermuhlner</groupId> <artifactId>big-math</artifactId> <version>${version.ch.obermuhlner}</version> </dependency> <!-- used by DMN for general (runtime-agnostic) inspection of PMML model --> <dependency> <groupId>org.jpmml</groupId> <artifactId>pmml-model</artifactId> <version>${version.org.jpmml.model}</version> </dependency> <!-- used by DMN test to ensure NI reflect-conf.json is correctly up-to-date --> <dependency> <groupId>io.smallrye</groupId> <artifactId>jandex</artifactId> <version>${version.io.smallrye.jandex}</version> </dependency> <dependency> <groupId>org.eclipse</groupId> <artifactId>yasson</artifactId> <version>${version.org.eclipse.yasson}</version> </dependency> <dependency> <groupId>com.github.javaparser</groupId> <artifactId>javaparser-core</artifactId> <version>${version.com.github.javaparser}</version> </dependency> <dependency> <groupId>org.awaitility</groupId> <artifactId>awaitility</artifactId> <version>${version.org.awaitility}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>${version.io.github.bonigarcia}</version> <scope>test</scope> </dependency> <!-- Used inside kie-ci --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>${version.com.google.guava}</version> </dependency> <!-- Used by kie-pmml-trusty projects --> <dependency> <groupId>org.kie</groupId> <artifactId>kie-pmml-dependencies</artifactId> <version>${project.version}</version> </dependency> <!-- Used by drools-metric --> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-core</artifactId> <version>${version.io.micrometer}</version> </dependency> <dependency> <groupId>org.kie</groupId> <artifactId>kie-core-bom</artifactId> <version>${project.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.drools</groupId> <artifactId>drools-bom</artifactId> <version>${project.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.kie</groupId> <artifactId>kie-efesto-bom</artifactId> <version>${project.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.kie</groupId> <artifactId>kie-dmn-bom</artifactId> <version>${project.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.kie</groupId> <artifactId>kie-pmml-bom</artifactId> <version>${project.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>it.unimi.dsi</groupId> <artifactId>fastutil</artifactId> <version>${version.it.unimi.dsi.fastutil}</version> </dependency> <dependency> <groupId>org.eclipse.microprofile.config</groupId> <artifactId>microprofile-config-api</artifactId> <version>${version.org.eclipse.microprofile.config}</version> </dependency> <dependency> <groupId>org.apache.openjpa</groupId> <artifactId>openjpa</artifactId> <version>${version.org.apache.openjpa}</version> </dependency> <dependency> <groupId>org.jboss.logging</groupId> <artifactId>jboss-logging</artifactId> <version>${version.org.jboss.logging}</version> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>${version.compiler.plugin}</version> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>3.0.0-M2</version> <dependencies> <dependency> <groupId>de.is24.maven.enforcer.rules</groupId> <artifactId>illegal-transitive-dependency-check</artifactId> <version>1.7.4</version> </dependency> <dependency> <groupId>com.redhat.victims</groupId> <artifactId>enforce-victims-rule</artifactId> <version>1.3.4</version> </dependency> <dependency> <groupId>org.commonjava.maven.enforcer</groupId> <artifactId>enforce-managed-deps-rule</artifactId> <version>1.3</version> </dependency> <dependency> <groupId>org.codehaus.mojo</groupId> <artifactId>extra-enforcer-rules</artifactId> <version>1.0</version> </dependency> </dependencies> <executions> <execution> <id>no-managed-deps</id> <goals> <goal>enforce</goal> </goals> <phase>initialize</phase> <configuration> <rules> <requireManagedDeps implementation="org.commonjava.maven.enforcer.rule.EnforceManagedDepsRule"> <checkProfiles>true</checkProfiles> <failOnViolation>true</failOnViolation> </requireManagedDeps> </rules> </configuration> </execution> <execution> <id>enforce-versions</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireMavenVersion> <version>${version.maven}</version> </requireMavenVersion> <requireJavaVersion> <version>${version.jdk}</version> </requireJavaVersion> </rules> </configuration> </execution> <execution> <id>enforce-direct-dependencies</id> <goals> <goal>enforce</goal> </goals> <phase>none</phase> <configuration> <rules> <illegalTransitiveDependencyCheck implementation="de.is24.maven.enforcer.rules.IllegalTransitiveDependencyCheck"> <reportOnly>${illegaltransitivereportonly}</reportOnly> <regexIgnoredClasses combine.children="append"> <!-- The maven-shade-plugin needs these classes to be compile-scope in guvnor-ala-openshift-client to be picked up, and then referenced in guvnor-ala-openshift-provider. When we don't need to shade anymore, we can remove these lines. --> <regexIgnoredClass>io\.fabric8\.kubernetes.*</regexIgnoredClass> <regexIgnoredClass>io\.fabric8\.openshift.*</regexIgnoredClass> <regexIgnoredClass>com\.sun\.net\.httpserver\..+</regexIgnoredClass> <regexIgnoredClass>javax\..+</regexIgnoredClass> <regexIgnoredClass>org\.w3c\.dom\..+</regexIgnoredClass> <regexIgnoredClass>org\.xml\.sax\..+</regexIgnoredClass> </regexIgnoredClasses> </illegalTransitiveDependencyCheck> </rules> </configuration> </execution> <execution> <id>ban-duplicated-classes</id> <!-- Using phase=none as we don't want this execution as part of the default build. The phase is specified in the "full" profile and thus the execution will only be activated when using that profile. --> <phase>none</phase> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <banDuplicateClasses> <ignoreClasses> <!-- Duplication of javax.inject classes is necessary to also support migration to jakarta namespace. --> <ignoreClass>javax.inject.*</ignoreClass> <!-- Contained in both com.google.inject:guice:jar and com.google.inject:guice:jar:no_aop --> <!-- and it is impossible to exclude only one of them --> <ignoreClass>com.google.inject.*</ignoreClass> <!-- Duplicated by XStream's transitive deps, with very little chance to get properly fixed --> <ignoreClass>org.xmlpull.v1.XmlPullParserException</ignoreClass> <ignoreClass>org.xmlpull.v1.XmlPullParser</ignoreClass> <!-- Bundled by both com.sun:tools and com.sun.xml.bind:jaxb-xjc. No easy way to exclude one of them. --> <ignoreClass>org.relaxng.datatype.*</ignoreClass> <!-- ignoring java 9 compatible class for modules --> <ignoreClass>module-info</ignoreClass> <!-- ignoring multirelease jar classes --> <ignoreClass>META-INF/versions/*</ignoreClass> </ignoreClasses> <dependencies> <!-- This JAR contains impl and is aligned with Jakarta spec JARs --> <dependency> <groupId>org.glassfish</groupId> <artifactId>jakarta.json</artifactId> <ignoreClasses> <ignoreClass>javax.json.*</ignoreClass> </ignoreClasses> </dependency> <!-- This JAR contains reference impl and is only used on tests --> <dependency> <groupId>com.sun.activation</groupId> <artifactId>jakarta.activation</artifactId> <ignoreClasses> <ignoreClass>javax.activation.*</ignoreClass> </ignoreClasses> </dependency> <dependency> <!-- quarkus-ide-launcher is a dependency of quarkus-core that they auto exclude during the build --> <groupId>io.quarkus</groupId> <artifactId>quarkus-ide-launcher</artifactId> <ignoreClasses> <ignoreClass>*</ignoreClass> </ignoreClasses> </dependency> <!-- sundr-codegen is required to compile test classes. --> <dependency> <groupId>io.sundr</groupId> <artifactId>sundr-codegen</artifactId> <ignoreClasses> <ignoreClass>*</ignoreClass> </ignoreClasses> </dependency> </dependencies> <findAllDuplicates>true</findAllDuplicates> </banDuplicateClasses> </rules> <fail>${enforcer.failOnDuplicatedClasses}</fail> </configuration> </execution> <execution> <id>no-duplicate-declared-dependencies</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <banDuplicatePomDependencyVersions/> </rules> </configuration> </execution> <execution> <id>ban-blacklisted-dependencies</id> <phase>validate</phase> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <bannedDependencies> <excludes combine.children="append"> <!-- Ban blacklisted logging deps (we only use SLF4J + Logback) --> <!-- In case of transitive dependency, exclude it and use 'org.slf4j:jcl-over-slf4j' instead --> <exclude>commons-logging:commons-log*</exclude> <exclude>log4j:log4j</exclude> <!-- In case of transitive dependency, exclude it and use 'org.slf4j:log4j-over-slf4j' instead --> <exclude>javassist:javassist</exclude> <!-- In case of transitive dependency, exclude it and use 'org.javassist:javassist' instead --> <exclude>org.jboss.weld.se:weld-se</exclude> <!-- Use weld-se-core instead --> <exclude>org.mockito:mockito-all</exclude> <!-- Use mockito-core instead --> <!-- cannot be banned because Quarkus 3 needs them --> <!-- <exclude>javax.annotation:javax.annotation-api</exclude> --> <!-- <exclude>javax.inject:javax.inject</exclude> --> <!-- Java EE 8 Spec JARs: Use Jakarta EE 8 instead. --> <exclude>javax.activation:activation</exclude> <exclude>javax.enterprise:cdi-api</exclude> <exclude>javax.interceptor:javax.interceptor-api</exclude> <exclude>javax.jws:jsr181-api</exclude> <exclude>javax.persistence:javax.persistence-api</exclude> <exclude>javax.servlet:javax.servlet-api</exclude> <exclude>javax.xml.bind:jaxb-api</exclude> <exclude>javax.xml.soap:javax.xml.soap-api</exclude> <exclude>javax.xml.ws:javaxws-api</exclude> <exclude>javax.el:javax.el-api</exclude> <exclude>javax.ws.rs:jsr311-api</exclude> <exclude>javax.ws.rs:javax.ws.rs-api</exclude> <exclude>javax.mail:mail</exclude> <exclude>javax.xml.stream:stax-api</exclude> <exclude>org.jboss.spec.javax.*:*</exclude> <exclude>org.apache.geronimo.specs:geronimo-activation_1.1_spec</exclude> <exclude>org.apache.geronimo.specs:geronimo-annotation_1.0_spec</exclude> <exclude>org.apache.geronimo.specs:geronimo-javamail_1.4_spec</exclude> <exclude>org.apache.geronimo.specs:geronimo-jaxws_2.1_spec</exclude> <exclude>org.apache.geronimo.specs:geronimo-jta_1.1_spec</exclude> <exclude>org.apache.geronimo.specs:geronimo-servlet_3.0_spec</exclude> <exclude>org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec</exclude> <!-- End --> </excludes> </bannedDependencies> </rules> <fail>${enforcer.failOnBannedDependencies}</fail> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>${version.maven-checkstyle}</version> <executions> <execution> <id>validate</id> <phase>validate</phase> <goals> <goal>check</goal> </goals> <configuration> <checkstyleRules> <module name="Checker"> <module name="BeforeExecutionExclusionFileFilter"> <property name="fileNamePattern" value="${drools.exclude.checkstyle}"/> </module> <!-- Checks for whitespace. --> <module name="FileTabCharacter"> <property name="severity" value="error"/> <property name="eachLine" value="true"/> </module> <module name="TreeWalker"> <!-- Import settings: getting rid of redundant import, forbid star notation, defined order of imports. --> <module name="RedundantImport"/> <module name="AvoidStarImport"> <property name="allowClassImports" value="false"/> <property name="allowStaticMemberImports" value="false"/> </module> <module name="CustomImportOrder"> <property name="customImportOrderRules" value="STANDARD_JAVA_PACKAGE###SPECIAL_IMPORTS###THIRD_PARTY_PACKAGE###STATIC"/> <property name="specialImportsRegExp" value="^javax\."/> <property name="standardPackageRegExp" value="^java\."/> <property name="sortImportsInGroupAlphabetically" value="true"/> <property name="separateLineBetweenGroups" value="true"/> </module> <module name="UnusedImports"/> <module name="NeedBraces"> <property name="tokens" value="LITERAL_IF, LITERAL_ELSE, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO"/> </module> <module name="EqualsHashCode"/> </module> <module name="RegexpHeader"> <property name="header" value="${checkstyle.header.template}"/> <property name="fileExtensions" value="${checkstyle.header.extensions}"/> </module> </module> </checkstyleRules> <outputFile>${project.build.directory}/checkstyle.log</outputFile> <includeTestSourceDirectory>true</includeTestSourceDirectory> <includeResources>true</includeResources> <includeTestResources>true</includeTestResources> <consoleOutput>false</consoleOutput> <logViolationsToConsole>${checkstyle.logViolationsToConsole}</logViolationsToConsole> <failsOnError>false</failsOnError> </configuration> </execution> </executions> </plugin> <plugin> <artifactId>maven-antrun-plugin</artifactId> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant-apache-regexp</artifactId> <version>1.8.2</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <forkCount>${surefire.forkCount}</forkCount> <reuseForks>true</reuseForks> <runOrder>hourly</runOrder> <includes> <include>**/*Test.java</include> </includes> <excludes> <exclude>**/*IntegrationTest.java</exclude> </excludes> <argLine>-Xmx1024m -Dfile.encoding=UTF-8</argLine> <systemPropertyVariables> <apple.awt.UIElement>true</apple.awt.UIElement> <org.uberfire.nio.git.daemon.enabled>false</org.uberfire.nio.git.daemon.enabled> <org.uberfire.nio.git.ssh.enabled>false</org.uberfire.nio.git.ssh.enabled> <org.uberfire.sys.repo.monitor.disabled>true</org.uberfire.sys.repo.monitor.disabled> </systemPropertyVariables> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>${version.maven-surefire}</version> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> <configuration> <includes> <include>**/*IntegrationTest.java</include> <include>**/*IT.java</include> </includes> <argLine>-Xmx1024m -Dfile.encoding=UTF-8</argLine> </configuration> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>${version.jacoco.plugin}</version> </plugin> <!-- Packaging --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <executions> <execution> <id>default-jar</id> <configuration> <archive> <manifestEntries combine.children="append"> <Automatic-Module-Name>${java.module.name}</Automatic-Module-Name> </manifestEntries> </archive> </configuration> </execution> <!-- No OSGi manifestEntries for <goal>jar</goal>: if it supported, then felix has already added them --> <execution> <id>test-jar</id> <goals> <goal>test-jar</goal> </goals> <configuration> <skipIfEmpty>true</skipIfEmpty> <excludes> <exclude>**/logback-test.xml</exclude> <exclude>**/jndi.properties</exclude> </excludes> <archive> <manifestEntries> <Bundle-SymbolicName>${java.module.name}.tests</Bundle-SymbolicName> <Bundle-Version> ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi.snapshot.qualifier} </Bundle-Version> <Bundle-Name>${project.name}</Bundle-Name> <Bundle-Vendor>${project.organization.name}</Bundle-Vendor> </manifestEntries> </archive> </configuration> </execution> </executions> <configuration> <archive> <manifest> <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> </manifest> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-plugin-plugin</artifactId> <version>${version.plugin.plugin}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>${version.maven-source-plugin}</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar-no-fork</goal> </goals> <configuration> <archive> <manifestEntries> <Bundle-ManifestVersion>2</Bundle-ManifestVersion> <Bundle-SymbolicName>${java.module.name}.source</Bundle-SymbolicName> <Bundle-Version> ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi.snapshot.qualifier} </Bundle-Version> <Bundle-Name>${project.name}</Bundle-Name> <Bundle-Vendor>${project.organization.name}</Bundle-Vendor> <Eclipse-SourceBundle> ${java.module.name};version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi.snapshot.qualifier}";roots:="." </Eclipse-SourceBundle> </manifestEntries> </archive> </configuration> </execution> <execution> <id>attach-test-sources</id> <goals> <goal>test-jar-no-fork</goal> </goals> <configuration> <archive> <manifestEntries> <Bundle-ManifestVersion>2</Bundle-ManifestVersion> <Bundle-SymbolicName>${java.module.name}.tests.source</Bundle-SymbolicName> <Bundle-Version> ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi.snapshot.qualifier} </Bundle-Version> <Bundle-Name>${project.name}</Bundle-Name> <Bundle-Vendor>${project.organization.name}</Bundle-Vendor> <Eclipse-SourceBundle> ${java.module.name}.tests;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi.snapshot.qualifier}";roots:="." </Eclipse-SourceBundle> </manifestEntries> </archive> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.commonjava.maven.plugins</groupId> <artifactId>project-sources-maven-plugin</artifactId> <version>0.3</version> <executions> <execution> <id>project-sources-archive</id> <phase>initialize</phase> <goals> <goal>archive</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <dependencies> <!-- Workaround for JDK9. Should be removed once we upgrade the plugin to version which depends directly on plexus-archiver 3.0.3+ --> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-archiver</artifactId> <version>${version.plexus.archiver}</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <dependencies> <!-- Workaround for JDK9. Should be removed once we upgrade the plugin to version which depends directly on plexus-archiver 3.0.3+ --> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-archiver</artifactId> <version>${version.plexus.archiver}</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxb2-maven-plugin</artifactId> <version>2.2</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>xml-maven-plugin</artifactId> <version>1.0</version> </plugin> <plugin> <groupId>io.smallrye</groupId> <artifactId>jandex-maven-plugin</artifactId> <version>${version.io.smallrye.jandex}</version> </plugin> <plugin> <groupId>org.asciidoctor</groupId> <artifactId>asciidoctor-maven-plugin</artifactId> <version>2.0.0-RC.1</version> <dependencies> <dependency> <groupId>org.asciidoctor</groupId> <artifactId>asciidoctorj</artifactId> <version>${version.org.asciidoctor.asciidoctorj}</version> </dependency> <dependency> <groupId>org.asciidoctor</groupId> <artifactId>asciidoctorj-pdf</artifactId> <version>${version.org.asciidoctor.asciidoctorj-pdf}</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>native2ascii-maven-plugin</artifactId> <version>1.0-beta-1</version> </plugin> <plugin> <groupId>com.coderplus.maven.plugins</groupId> <artifactId>copy-rename-maven-plugin</artifactId> <version>1.0</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-invoker-plugin</artifactId> <version>3.2.1</version> <configuration> <writeJunitReport>true</writeJunitReport> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>${version.maven-deploy-plugin}</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <version>2.10.0</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <configuration> <!-- Manually push changes (including git tags) after nexus staged repo is successfully closed --> <pushChanges>false</pushChanges> <autoVersionSubmodules>true</autoVersionSubmodules> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> </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> <!-- Configure m2e to ignore the maven-checkstyle-plugin. --> <pluginExecution> <pluginExecutionFilter> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <versionRange>[1.0.0,)</versionRange> <goals> <goal>check</goal> </goals> </pluginExecutionFilter> <action> <ignore/> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> <plugin> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> <version>${version.com.github.spotbugs-maven-plugin}</version> <dependencies> <dependency> <groupId>org.kie</groupId> <artifactId>kie-build-tools</artifactId> <version>${project.version}</version> </dependency> </dependencies> <configuration> <maxRank>6</maxRank> <effort>Max</effort> <xmlOutput>true</xmlOutput> <failOnError>${spotbugs.failOnViolation}</failOnError> <excludeFilterFile>spotbugs-excludes.xml</excludeFilterFile> </configuration> </plugin> <plugin> <groupId>org.kie</groupId> <artifactId>kie-maven-plugin</artifactId> <version>${project.version}</version> </plugin> <plugin> <groupId>org.pitest</groupId> <artifactId>pitest-maven</artifactId> <version>1.2.0</version> </plugin> <!-- Incremental compiler--> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.5.0</version> </plugin> <plugin> <groupId>org.wildfly.plugins</groupId> <artifactId>wildfly-maven-plugin</artifactId> <version>1.2.0.Final</version> </plugin> <plugin> <groupId>org.sonarsource.scanner.maven</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>3.6.0.1398</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${version.maven-javadoc-plugin.override}</version> <configuration> <header><![CDATA[<b>${project.name} ${project.version}</b>]]></header> <footer><![CDATA[<b>${project.name} ${project.version}</b>]]></footer> <archive> <index>true</index> </archive> <quiet>true</quiet> <doclint>none</doclint> <legacyMode>true</legacyMode> </configuration> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <artifactId>maven-enforcer-plugin</artifactId> </plugin> <plugin> <artifactId>maven-checkstyle-plugin</artifactId> </plugin> <plugin> <!-- Entry needed to provide parsed version properties --> <!-- also adds generated sources to -source artifact --> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>${version.build.helper.maven.plugin}</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>add-source</goal> <goal>parse-version</goal> </goals> <configuration> <sources> <source>target/generated-sources/annotations/</source> </sources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> <plugin> <!-- Entry needed to create test-jars even for packaging types war, bundle, ... --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>${version.maven-jar-plugin}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> </plugin> </plugins> </build> <reporting> <plugins> <!-- Note: It's not possible to configure reporting plugins in pluginManagement in m2.0.4 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jxr-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> <version>2.6</version> <reportSets> <reportSet> <reports> <report>report-only</report> </reports> </reportSet> </reportSets> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>javancss-maven-plugin</artifactId> <version>2.0</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>taglist-maven-plugin</artifactId> <version>2.4</version> </plugin> <plugin> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> </plugin> </plugins> </reporting> <profiles> <profile> <!-- Performs the quick build: all plugins deactivated --> <id>quick-build</id> <activation> <property> <name>quickly</name> </property> </activation> <properties> <formatter.skip>true</formatter.skip> <skipITs>true</skipITs> <skipTests>true</skipTests> <invoker.skip>true</invoker.skip> <archetype.test.skip>true</archetype.test.skip> <enforcer.skip>true</enforcer.skip> <revapi.skip>true</revapi.skip> <maven.javadoc.skip>true</maven.javadoc.skip> <checkstyle.skip>true</checkstyle.skip> </properties> <build> <defaultGoal>clean install</defaultGoal> <pluginManagement> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>properties-maven-plugin</artifactId> <executions> <execution> <phase>initialize</phase> <goals> <goal>set-system-properties</goal> </goals> <configuration> <properties> <property> <name>quarkus.container-image.build</name> <value>false</value> </property> </properties> </configuration> </execution> </executions> </plugin> </plugins> </pluginManagement> </build> </profile> <profile> <!-- Performs the quick test: only formatting validation and unit tests enabled --> <id>quick-test</id> <activation> <property> <name>quickTests</name> </property> </activation> <properties> <formatter.skip>false</formatter.skip> <formatter.goal>validate</formatter.goal> <impsort.goal>check</impsort.goal> <skipITs>true</skipITs> <invoker.skip>true</invoker.skip> <archetype.test.skip>true</archetype.test.skip> </properties> <build> <defaultGoal>clean install</defaultGoal> <pluginManagement> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>properties-maven-plugin</artifactId> <executions> <execution> <phase>initialize</phase> <goals> <goal>set-system-properties</goal> </goals> <configuration> <properties> <property> <name>quarkus.container-image.build</name> <value>false</value> </property> </properties> </configuration> </execution> </executions> </plugin> <plugin> <artifactId>maven-invoker-plugin</artifactId> <configuration> <skipInstallation>true</skipInstallation> <skipInvocation>true</skipInvocation> </configuration> </plugin> </plugins> </pluginManagement> </build> </profile> <profile> <!-- Translates -DskipAllTests parameter passed to build into setting corresponding skip properties. It does NOT reflect the change made to the property value inside the pom files, just from cmd line. Inside pom file it needs to be in sync explicitly in each profile. --> <id>skip-all-tests</id> <activation> <property> <name>skipAllTests</name> </property> </activation> <properties> <skipITs>true</skipITs> <skipTests>true</skipTests> <invoker.skip>true</invoker.skip> <archetype.test.skip>true</archetype.test.skip> </properties> </profile> <profile> <id>fullProfile</id> <activation> <property> <name>full</name> </property> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>ban-duplicated-classes</id> <!-- The execution's configuration is part of the pluginManagement. This piece here only makes sure the execution is enabled (by specifying a phase) for full profile builds. --> <phase>validate</phase> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>jar</goal> </goals> <configuration> <source>${maven.compiler.source}</source> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <!-- Creates JaCoCo XML reports and invokes the Sonar scanner, which uploads code quality data into the SonarCloud. --> <profile> <id>sonarcloud-analysis</id> <properties> <sonar.coverage.jacoco.xmlReportPaths>${project.reporting.outputDirectory}/jacoco/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths> <sonar.host.url>https://sonarcloud.io</sonar.host.url> <sonar.organization>kiegroup</sonar.organization> <!--suppress UnresolvedMavenProperty --> <sonar.login>${env.SONARCLOUD_TOKEN}</sonar.login> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <id>generate-aggregated-jacoco-report</id> <phase>validate</phase> <goals> <goal>run</goal> </goals> <configuration> <!-- Jacoco ant "report" task provides control over scope of the generated report. The report task requires access to sources, classes and .exec file containing coverage data. The configuration below uses sources and classes of the entire project (each of its modules) and a single jacoco.exec file placed in project root directory. Jacoco maven plugin does not provide such a level of control and requires an artificial module that depends on all modules in the project to generate an aggregated report for all the modules. This necessity of creating a reporting module in every project is rather intrusive. See: https://www.jacoco.org/jacoco/trunk/doc/report-aggregate-mojo.html and https://groups.google.com/forum/#!topic/jacoco/oMxNZs_DNII --> <target> <echo message="Generating JaCoCo Reports"/> <taskdef name="report" classname="org.jacoco.ant.ReportTask"/> <mkdir dir="${project.reporting.outputDirectory}/jacoco"/> <report> <executiondata> <fileset dir="${project.root.dir}/target"> <!-- Include a single jacoco.exec file, which should be used in append mode by every module. --> <include name="jacoco.exec"/> </fileset> </executiondata> <structure name="Coverage Report"> <group name="${project.artifactId}"> <classfiles> <fileset dir="${project.root.dir}"> <!-- Include class files from every module. --> <include name="**/target/classes/**/*.class"/> <!-- Following classes are excluded as they are present in multiple modules. Usually they are a product of tests or 3rd party dependencies that got unwrapped in target/classes folder during the build. These are not a subject of test coverage measurement. --> <exclude name="**/target/**/target/classes/**/*.class"/> <!-- TODO: there are multiple classes of the same fully qualified name in kie-server modules. They need to be renamed to enable coverage reporting for them. --> <exclude name="**/target/classes/**/org/kie/server/gateway/KieServerGateway.class"/> <exclude name="**/target/classes/**/org/kie/server/springboot/samples/KieServerApplication.class"/> </fileset> </classfiles> <sourcefiles encoding="UTF-8"> <fileset dir="${project.root.dir}"> <!-- Include source files from every module. --> <include name="**/src/main/**/*.java"/> </fileset> </sourcefiles> </group> </structure> <!-- The same report is generated in each module --> <xml destfile="${project.reporting.outputDirectory}/jacoco/jacoco.xml"/> </report> </target> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>org.jacoco</groupId> <artifactId>org.jacoco.ant</artifactId> <!-- Keep the version in sync with jacoco-maven-plugin --> <version>${version.jacoco.plugin}</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.sonarsource.scanner.maven</groupId> <artifactId>sonar-maven-plugin</artifactId> <executions> <execution> <goals> <goal>sonar</goal> </goals> <phase>validate</phase> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>sonarcloud-analysis-pull-request</id> <activation> <property> <name>env.ghprbPullId</name> </property> </activation> <properties> <sonar.pullrequest.provider>GitHub</sonar.pullrequest.provider> <!--suppress UnresolvedMavenProperty --> <sonar.pullrequest.branch>${env.ghprbSourceBranch}</sonar.pullrequest.branch> <!--suppress UnresolvedMavenProperty --> <sonar.pullrequest.key>${env.ghprbPullId}</sonar.pullrequest.key> <!--suppress UnresolvedMavenProperty --> <sonar.pullrequest.base>${env.ghprbTargetBranch}</sonar.pullrequest.base> </properties> </profile> <!-- Forces en_US usage during test execution. Useful for machine with different locale --> <profile> <id>test-en</id> <activation> <property> <name>TestEn</name> </property> </activation> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine>-Xmx1024m -Dfile.encoding=UTF-8 -Duser.language=en -Duser.region=US</argLine> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <configuration> <argLine>-Xmx1024m -Dfile.encoding=UTF-8 -Duser.language=en -Duser.region=US</argLine> </configuration> </plugin> </plugins> </pluginManagement> </build> </profile> <profile> <id>run-code-coverage</id> <properties> <jacoco.excludes>*Lexer</jacoco.excludes> <!--suppress UnresolvedMavenProperty --> <jacoco.agent.line>-javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${version.jacoco.plugin}/org.jacoco.agent-${version.jacoco.plugin}-runtime.jar=destfile=${jacoco.exec.file},append=true,excludes=${jacoco.excludes}</jacoco.agent.line> <surefire.argLine> -Dfile.encoding=${project.build.sourceEncoding} ${jacoco.agent.line} </surefire.argLine> </properties> <build> <pluginManagement> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine>${surefire.argLine}</argLine> </configuration> <dependencies> <dependency> <groupId>org.jacoco</groupId> <artifactId>org.jacoco.agent</artifactId> <version>${version.jacoco.plugin}</version> <classifier>runtime</classifier> </dependency> </dependencies> </plugin> </plugins> </pluginManagement> </build> </profile> <profile> <id>test-with-custom-binaries</id> <activation> <property> <name>unpackbuild.version</name> </property> <file> <exists>src/main/java</exists> </file> </activation> <properties> <maven.main.skip>true</maven.main.skip> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <configuration> <artifactItems> <artifactItem> <groupId>${project.groupId}</groupId> <artifactId>${project.artifactId}</artifactId> <version>${unpackbuild.version}</version> <type>${project.packaging}</type> <overWrite>true</overWrite> <outputDirectory>target/classes</outputDirectory> </artifactItem> </artifactItems> </configuration> <executions> <execution> <id>unpack-jar</id> <phase>compile</phase> <goals> <goal>unpack</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> </project>