<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.apache</groupId> <artifactId>apache</artifactId> <version>23</version> <relativePath /> </parent> <groupId>org.apache.nifi</groupId> <artifactId>nifi</artifactId> <version>1.14.0-SNAPSHOT</version> <packaging>pom</packaging> <description>Apache NiFi is an easy to use, powerful, and reliable system to process and distribute data.</description> <modules> <module>nifi-commons</module> <module>nifi-api</module> <module>nifi-framework-api</module> <module>nifi-server-api</module> <module>nifi-bootstrap</module> <module>nifi-mock</module> <module>nifi-nar-bundles</module> <module>nifi-assembly</module> <module>nifi-docs</module> <module>nifi-maven-archetypes</module> <module>nifi-external</module> <module>nifi-toolkit</module> <module>nifi-docker</module> <module>nifi-system-tests</module> </modules> <url>https://nifi.apache.org</url> <organization> <name>Apache NiFi Project</name> <url>https://nifi.apache.org/</url> </organization> <licenses> <license> <name>Apache License, Version 2.0</name> <url>https://www.apache.org/licenses/LICENSE-2.0</url> </license> </licenses> <mailingLists> <mailingList> <name>Dev</name> <subscribe>dev-subscribe@nifi.apache.org</subscribe> <unsubscribe>dev-unsubscribe@nifi.apache.org</unsubscribe> <post>dev@nifi.apache.org</post> <archive>https://mail-archives.apache.org/mod_mbox/nifi-dev</archive> </mailingList> <mailingList> <name>Users</name> <subscribe>users-subscribe@nifi.apache.org</subscribe> <unsubscribe>users-unsubscribe@nifi.apache.org</unsubscribe> <post>users@nifi.apache.org</post> <archive>https://mail-archives.apache.org/mod_mbox/nifi-users</archive> </mailingList> <mailingList> <name>Commits</name> <subscribe>commits-subscribe@nifi.apache.org</subscribe> <unsubscribe>commits-unsubscribe@nifi.apache.org</unsubscribe> <post>commits@nifi.apache.org</post> <archive>https://mail-archives.apache.org/mod_mbox/nifi-commits</archive> </mailingList> </mailingLists> <scm> <connection>scm:git:git://git.apache.org/nifi.git</connection> <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/nifi.git</developerConnection> <url>https://git-wip-us.apache.org/repos/asf?p=nifi.git</url> <tag>HEAD</tag> </scm> <issueManagement> <system>JIRA</system> <url>https://issues.apache.org/jira/browse/NIFI</url> </issueManagement> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.surefire.arguments /> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <inceptionYear>2014</inceptionYear> <okhttp.version>4.9.1</okhttp.version> <org.bouncycastle.version>1.68</org.bouncycastle.version> <org.slf4j.version>1.7.30</org.slf4j.version> <ranger.version>2.1.0</ranger.version> <jetty.version>9.4.35.v20201120</jetty.version> <jackson.version>2.9.10</jackson.version> <jackson-databind.version>2.9.10.8</jackson-databind.version> <nifi.registry.version>0.8.0</nifi.registry.version> <nifi.groovy.version>2.5.4</nifi.groovy.version> <surefire.version>2.22.2</surefire.version> <!-- The Hadoop version used by nifi-hadoop-libraries-nar and any NARs that depend on it, other NARs that need a specific version should override this property, or use a more specific property like abc.hadoop.version --> <hadoop.version>3.3.0</hadoop.version> <ozone.version>1.0.0</ozone.version> <gcs.version>2.1.5</gcs.version> <aspectj.version>1.9.6</aspectj.version> </properties> <repositories> <repository> <id>central</id> <!-- This should be at top, it makes maven try the central repo first and then others and hence faster dep resolution --> <name>Maven Repository</name> <url>https://repo1.maven.org/maven2</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>apache-repo</id> <name>Apache Repository</name> <url>https://repository.apache.org/content/repositories/releases</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>jcenter</id> <url>https://jcenter.bintray.com</url> <snapshots> <enabled>false</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </repository> <repository> <id>Shibboleth</id> <name>Shibboleth</name> <url>https://build.shibboleth.net/nexus/content/repositories/releases/</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>gcs-maven-central-mirror</id> <!-- Google Mirror of Maven Central, placed first so that it's used instead of flaky Maven Central. See https://storage-download.googleapis.com/maven-central/index.html --> <name>GCS Maven Central mirror</name> <url>https://maven-central.storage-download.googleapis.com/repos/central/data/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>central</id> <name>Central Repository</name> <url>https://repo.maven.apache.org/maven2</url> <layout>default</layout> <snapshots> <enabled>false</enabled> </snapshots> <releases> <updatePolicy>never</updatePolicy> </releases> </pluginRepository> <pluginRepository> <id>bintray</id> <name>Groovy Bintray</name> <url>https://dl.bintray.com/groovy/maven</url> <releases> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> <dependencyManagement> <dependencies> <!-- The following dependency management entries exist because these are jars that live in the top-level lib directory and will be present in the parent-first classloading of all child nars. Therefore we dont want child nars using different versions anyway.--> <!-- javax.servlet-api handling this explicitly Must be in root lib --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!-- jetty-schemas-3.1.jar handling this explicitly Must be in root lib --> <dependency> <groupId>org.eclipse.jetty.toolchain</groupId> <artifactId>jetty-schemas</artifactId> <version>3.1</version> <scope>provided</scope> </dependency> <!-- logback-classic, logback-core, log4j-over-slf4j, jul-to-slf4j,jcl-over-slf4j,slf4j-api handling this explicitly Must be in root lib --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${org.slf4j.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> <version>${org.slf4j.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> <version>${org.slf4j.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${org.slf4j.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>${org.slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${org.slf4j.version}</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>${org.bouncycastle.version}</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcpkix-jdk15on</artifactId> <version>${org.bouncycastle.version}</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcpg-jdk15on</artifactId> <version>${org.bouncycastle.version}</version> </dependency> <!-- These junit/mockito/groovy/spock/hamcrest dependencies are here to encourage consistent unit test library usage --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.1</version> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>2.28.2</version> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>${nifi.groovy.version}</version> <type>pom</type> <scope>test</scope> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-test</artifactId> <version>${nifi.groovy.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.spockframework</groupId> <artifactId>spock-core</artifactId> <version>1.3-groovy-2.5</version> <scope>test</scope> <exclusions> <exclusion> <!-- exclude transitive groovy dependencies to force spock to use the the managed groovy dependencies inherited from the parent pom --> <groupId>org.codehaus.groovy</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-all</artifactId> <version>1.3</version> <scope>test</scope> </dependency> <dependency> <groupId>org.testcontainers</groupId> <artifactId>testcontainers</artifactId> <version>1.11.3</version> <scope>test</scope> </dependency> <!-- These Jetty dependencies are required for the Jetty Web Server all nars extend from it so we dont want this getting overriden --> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> <version>${jetty.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-servlet</artifactId> <version>${jetty.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-webapp</artifactId> <version>${jetty.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-deploy</artifactId> <version>${jetty.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-servlets</artifactId> <version>${jetty.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-annotations</artifactId> <version>${jetty.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>apache-jsp</artifactId> <version>${jetty.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>apache-jstl</artifactId> <version>${jetty.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>${aspectj.version}</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectj.version}</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <fork>true</fork> <optimize>true</optimize> <showDeprecation>true</showDeprecation> <showWarnings>true</showWarnings> </configuration> </plugin> <plugin> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-eclipse-compiler</artifactId> <version>3.4.0-01</version> <extensions>true</extensions> </plugin> <plugin> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-eclipse-batch</artifactId> <version>${nifi.groovy.version}-01</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <systemPropertyVariables> <java.awt.headless>true</java.awt.headless> </systemPropertyVariables> <includes> <include>**/*Test.class</include> <include>**/Test*.class</include> <include>**/*Spec.class</include> </includes> <excludes> <exclude>**/*ITSpec.class</exclude> </excludes> <redirectTestOutputToFile>true</redirectTestOutputToFile> <argLine combine.children="append">-Xmx1G -Djava.net.preferIPv4Stack=true ${maven.surefire.arguments} -Dfile.encoding=UTF-8</argLine> </configuration> <dependencies> <dependency> <!-- Force surefire to use JUnit --> <groupId>org.apache.maven.surefire</groupId> <artifactId>surefire-junit4</artifactId> <version>${surefire.version}</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <tarLongFileMode>gnu</tarLongFileMode> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxb2-maven-plugin</artifactId> <version>2.3.1</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.6.0</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <failOnError>false</failOnError> <quiet>true</quiet> <show>private</show> <encoding>UTF-8</encoding> <quiet>true</quiet> <javadocVersion>1.8</javadocVersion> <additionalJOption>-J-Xmx512m</additionalJOption> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <configuration> <useReleaseProfile>true</useReleaseProfile> <releaseProfiles>apache-release</releaseProfiles> <autoVersionSubmodules>true</autoVersionSubmodules> <goals>deploy</goals> <tagNameFormat>@{project.artifactId}-@{project.version}</tagNameFormat> <pushChanges>false</pushChanges> <localCheckout>true</localCheckout> </configuration> <executions> <execution> <id>default</id> <goals> <goal>perform</goal> </goals> <configuration> <pomFileName>pom.xml</pomFileName> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>rpm-maven-plugin</artifactId> <version>2.1.5</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>buildnumber-maven-plugin</artifactId> <version>1.4</version> </plugin> <plugin> <groupId>org.antlr</groupId> <artifactId>antlr3-maven-plugin</artifactId> <version>3.5.2</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>3.1.0</version> <dependencies> <dependency> <groupId>com.puppycrawl.tools</groupId> <artifactId>checkstyle</artifactId> <version>8.29</version> </dependency> </dependencies> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <executions> <!-- Only run for tests --> <execution> <id>groovy-tests</id> <goals> <goal>testCompile</goal> </goals> <configuration> <compilerId>groovy-eclipse-compiler</compilerId> </configuration> </execution> </executions> <configuration> <source>${maven.compiler.source}</source> <target>${maven.compiler.target}</target> </configuration> <dependencies> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-eclipse-compiler</artifactId> <version>3.4.0-01</version> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-eclipse-batch</artifactId> <version>${nifi.groovy.version}-01</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.nifi</groupId> <artifactId>nifi-nar-maven-plugin</artifactId> <version>1.3.1</version> <extensions>true</extensions> <configuration> <enforceDocGeneration>true</enforceDocGeneration> </configuration> </plugin> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>1.6.8</version> <extensions>true</extensions> <configuration> <stagingProgressTimeoutMinutes>15</stagingProgressTimeoutMinutes> <serverId>repository.apache.org</serverId> <nexusUrl>https://repository.apache.org/</nexusUrl> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>3.0.0-M3</version> <executions> <execution> <id>enforce-maven</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireSameVersions> <plugins> <plugin>org.apache.maven.plugins:maven-surefire-plugin</plugin> <plugin>org.apache.maven.plugins:maven-failsafe-plugin</plugin> <plugin>org.apache.maven.plugins:maven-surefire-report-plugin</plugin> </plugins> </requireSameVersions> <requireMavenVersion> <!-- We do not test this value so we should probably make it something fairly recent --> <version>3.1.1</version> </requireMavenVersion> </rules> </configuration> </execution> <execution> <id>enforce-no-snapshots</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireReleaseDeps> <message>Other than org apache nifi components themselves no snapshot dependencies are allowed</message> <!-- If we want to only enforce this for nifi release itself we should add 'onlyWhenRelease' and remove 'failWhenParentIsSnapshot' element --> <failWhenParentIsSnapshot>false</failWhenParentIsSnapshot> <excludes> <exclude>org.apache.nifi:*</exclude> <exclude>org.apache.nifi.registry:*</exclude> </excludes> </requireReleaseDeps> </rules> <fail>true</fail> </configuration> </execution> <execution> <id>enforce-banned-dependencies</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <bannedDependencies> <excludes> <!-- Cat-X Deps --> <exclude>org.json:json:*:*:compile</exclude> <exclude>c3p0:c3p0:*:*:compile</exclude> <!-- Versions of JSR305 before 3.0.1 are not allowed https://github.com/findbugsproject/findbugs/issues/128 --> <exclude>com.google.code.findbugs:jsr305:*:*:compile</exclude> </excludes> <includes> <!-- Versions of JSR305 after 3.0.1 are allowed https://github.com/findbugsproject/findbugs/issues/128 --> <include>com.google.code.findbugs:jsr305:[3.0.0,)</include> </includes> </bannedDependencies> </rules> <fail>true</fail> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <configuration> <checkstyleRules> <module name="Checker"> <property name="charset" value="UTF-8" /> <property name="severity" value="warning" /> <!-- Checks for whitespace --> <!-- See http://checkstyle.sf.net/config_whitespace.html --> <module name="FileTabCharacter"> <property name="eachLine" value="true" /> </module> <module name="LineLength"> <!-- needs extra, because Eclipse formatter ignores the ending left brace --> <property name="max" value="200" /> <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://" /> </module> <module name="TreeWalker"> <module name="RegexpSinglelineJava"> <property name="format" value="\s+$" /> <property name="message" value="Line has trailing whitespace." /> </module> <module name="RegexpSinglelineJava"> <property name="format" value="[@]see\s+[{][@]link" /> <property name="message" value="Javadoc @see does not need @link: pick one or the other." /> </module> <module name="OuterTypeFilename" /> <module name="AvoidStarImport" /> <module name="UnusedImports"> <property name="processJavadoc" value="true" /> </module> <module name="NoLineWrap" /> <module name="LeftCurly" /> <module name="RightCurly" /> <module name="RightCurly"> <property name="option" value="alone_or_singleline" /> <property name="tokens" value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT" /> </module> <module name="SeparatorWrap"> <property name="tokens" value="DOT" /> <property name="option" value="nl" /> </module> <module name="SeparatorWrap"> <property name="tokens" value="COMMA" /> <property name="option" value="EOL" /> </module> <module name="PackageName"> <property name="format" value="^[a-z]+(\.[a-z][a-zA-Z0-9]*)*$" /> </module> <module name="MethodTypeParameterName"> <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)" /> </module> <module name="MethodParamPad" /> <module name="OperatorWrap"> <property name="option" value="NL" /> <property name="tokens" value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, QUESTION, SL, SR, STAR " /> </module> <module name="AnnotationLocation"> <property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF" /> </module> <module name="AnnotationLocation"> <property name="tokens" value="VARIABLE_DEF" /> <property name="allowSamelineMultipleAnnotations" value="true" /> </module> <module name="NonEmptyAtclauseDescription" /> <module name="JavadocMethod"> <property name="allowMissingParamTags" value="true" /> <property name="allowMissingReturnTag" value="true" /> <property name="allowedAnnotations" value="Override,Test,BeforeClass,AfterClass,Before,After" /> </module> <module name="SingleLineJavadoc" /> </module> </module> </checkstyleRules> <violationSeverity>warning</violationSeverity> <includeTestSourceDirectory>true</includeTestSourceDirectory> </configuration> </plugin> <plugin> <groupId>org.apache.rat</groupId> <artifactId>apache-rat-plugin</artifactId> <configuration> <consoleOutput>true</consoleOutput> <useIdeaDefaultExcludes>true</useIdeaDefaultExcludes> <excludes> <exclude>nb-configuration.xml</exclude> <!-- courtesy excludes for netbeans users --> <exclude>nbactions.xml</exclude> <!-- courtesy excludes for netbeans users --> <exclude>DEPENDENCIES</exclude> <!-- auto generated file by apache's maven config while building sources.zip --> <exclude>.github/PULL_REQUEST_TEMPLATE.md</exclude> <!-- PR Template for GitHub that does not have a mechanism of including comments --> <exclude>.github/workflows/ci-workflow.yml</exclude> </excludes> </configuration> </plugin> </plugins> </build> <profiles> <profile> <!-- Performs execution of Integration Tests using the Maven FailSafe Plugin. The view of integration tests in this context are those tests interfacing with external sources and services requiring additional resources or credentials that cannot be explicitly provided. Also appropriate for tests which depend on inter-thread and/or network or having timing considerations which could make the tests brittle on various environments.--> <id>integration-tests</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <!-- Checks style and licensing requirements. This is a good idea to run for contributions and for the release process. While it would be nice to run always these plugins can considerably slow the build and have proven to create unstable builds in our multi-module project and when building using multiple threads. The stability issues seen with Checkstyle in multi-module builds include false-positives and false negatives. --> <id>contrib-check</id> <build> <plugins> <plugin> <groupId>org.apache.rat</groupId> <artifactId>apache-rat-plugin</artifactId> <executions> <execution> <goals> <goal>check</goal> </goals> <phase>verify</phase> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <executions> <execution> <id>check-style</id> <phase>verify</phase> <configuration> <encoding>UTF-8</encoding> <excludes>**/generated-sources/**/*</excludes> <sourceDirectories> <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory> <sourceDirectory>${project.build.testSourceDirectory}</sourceDirectory> </sourceDirectories> </configuration> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <!-- This profile will disable DocLint which performs strict JavaDoc processing which was introduced in JDK 8. These are technically errors in the JavaDoc which we need to eventually address. However, if a release is performed using JDK 8 or newer, the JavaDoc generation would fail. By activating this profile when running on JDK 8 or newer we can ensure the JavaDocs continue to generate successfully --> <id>disable-doclint</id> <activation> <jdk>[1.8,)</jdk> </activation> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <additionalparam>-Xdoclint:none</additionalparam> </configuration> </plugin> </plugins> </pluginManagement> </build> </profile> <profile> <!-- This profile, activating when compiling on Java versions above 1.8, provides configuration changes to allow NiFi to be compiled on those JDKs. --> <id>jigsaw</id> <activation> <jdk>(1.8,)</jdk> </activation> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> <build> <pluginManagement> <plugins> <plugin> <groupId>org.jvnet.jaxb2.maven2</groupId> <artifactId>maven-jaxb2-plugin</artifactId> <version>0.14.0</version> </plugin> </plugins> </pluginManagement> </build> <dependencyManagement> <dependencies> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-core</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>com.sun.activation</groupId> <artifactId>javax.activation</artifactId> <version>1.2.0</version> </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.2</version> </dependency> </dependencies> </dependencyManagement> </profile> <!-- The following profiles are here as a convenience for folks that want to build against vendor-specific distributions of the various Hadoop ecosystem libraries. These will alter which dependencies are sourced in a manner that can adjust the correct LICENSE and NOTICE requirements for any affected jar and the resulting assembly overall. These L&N impacts are not automatically handled by the build process and are the responsibility of those creating and using the resulting binary artifacts. --> <profile> <!-- This profile adds the Hortonworks repository for resolving Hortonworks Data Platform (HDP) artifacts for the Hadoop bundles --> <id>hortonworks</id> <repositories> <repository> <id>hortonworks-releases</id> <name>Hortonworks Repository</name> <url>https://repo.hortonworks.com/content/repositories/releases/</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy> </releases> <snapshots> <enabled>false</enabled> <updatePolicy>never</updatePolicy> <checksumPolicy>fail</checksumPolicy> </snapshots> </repository> <repository> <id>hortonworks-jetty</id> <name>Hortonworks Jetty Repository</name> <url>https://repo.hortonworks.com/content/repositories/jetty-hadoop/</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy> </releases> <snapshots> <enabled>false</enabled> <updatePolicy>never</updatePolicy> <checksumPolicy>fail</checksumPolicy> </snapshots> </repository> </repositories> <properties> <!-- Vendor-specific version number included here as default, should be overridden on the command-line <hadoop.version>2.7.1.2.4.0.0-169</hadoop.version> --> </properties> </profile> <profile> <!-- This profile will add the MapR repository for resolving MapR Hadoop artifacts for the Hadoop bundles --> <id>mapr</id> <repositories> <repository> <id>mapr-releases</id> <name>MapR Repository</name> <url>https://repository.mapr.com/maven/</url> <snapshots> <enabled>false</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </repository> </repositories> <properties> <!-- Vendor-specific version number included here as default, should be overridden on the command-line <hadoop.version>2.7.0-mapr-1602</hadoop.version> --> </properties> </profile> <profile> <!-- This profile will add the Cloudera repository for resolving Cloudera Distribution of Hadoop (CDH) artifacts for the Hadoop bundles --> <id>cloudera</id> <repositories> <repository> <id>cloudera-repo</id> <name>Cloudera Repository</name> <url>https://repository.cloudera.com/artifactory/cloudera-repos</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <properties> <!-- Vendor-specific version number included here as default, should be overridden on the command-line <hadoop.version>2.6.0-cdh5.8.1</hadoop.version> --> </properties> </profile> </profiles> </project>