cdap-master
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-master</artifactId> <version>6.11.0</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright © 2014-2021 Cask Data, Inc. Licensed 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"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>io.cdap.cdap</groupId> <artifactId>cdap</artifactId> <version>6.11.0</version> </parent> <artifactId>cdap-master</artifactId> <name>CDAP Master</name> <packaging>jar</packaging> <dependencies> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-master-spi</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </dependency> <!-- Added to override the embedded guava class in hive-exec --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-api</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-common</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-data-fabric</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-gateway</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-watchdog-api</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-watchdog</artifactId> <version>${project.version}</version> <!-- paranamer corresponding to spark version should be used and provided by the runtime --> <exclusions> <exclusion> <groupId>com.thoughtworks.paranamer</groupId> <artifactId>paranamer</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-app-fabric</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-security</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-support-bundle</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-tms</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-messaging-ext-spanner</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.tephra</groupId> <artifactId>tephra-api</artifactId> </dependency> <dependency> <groupId>org.apache.tephra</groupId> <artifactId>tephra-core</artifactId> <exclusions> <exclusion> <groupId>org.apache.twill</groupId> <artifactId>twill-api</artifactId> </exclusion> <exclusion> <groupId>org.apache.twill</groupId> <artifactId>twill-common</artifactId> </exclusion> <exclusion> <groupId>org.apache.twill</groupId> <artifactId>twill-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.cdap.twill</groupId> <artifactId>twill-discovery-api</artifactId> </dependency> <dependency> <groupId>io.cdap.twill</groupId> <artifactId>twill-discovery-core</artifactId> </dependency> <dependency> <groupId>io.cdap.twill</groupId> <artifactId>twill-zookeeper</artifactId> </dependency> <dependency> <groupId>io.cdap.twill</groupId> <artifactId>twill-yarn</artifactId> </dependency> <dependency> <groupId>io.cdap.twill</groupId> <artifactId>twill-api</artifactId> </dependency> <dependency> <groupId>io.cdap.twill</groupId> <artifactId>twill-common</artifactId> </dependency> <dependency> <groupId>io.cdap.twill</groupId> <artifactId>twill-core</artifactId> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-yarn-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-yarn-client</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-yarn-common</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> </dependency> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.12</artifactId> </dependency> <!-- for tools --> <dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> </dependency> <!-- test dependencies --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-app-fabric</artifactId> <version>${project.version}</version> <type>test-jar</type> <scope>test</scope> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-data-fabric</artifactId> <version>${project.version}</version> <type>test-jar</type> <scope>test</scope> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-common</artifactId> <version>${project.version}</version> <type>test-jar</type> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>4.0.3</version> <scope>test</scope> </dependency> </dependencies> <profiles> <profile> <id>dist</id> <properties> <stage.artifacts.dir>${stage.opt.dir}/artifacts</stage.artifacts.dir> <stage.runtime.ext.dir>${stage.opt.dir}/ext/runtimes</stage.runtime.ext.dir> <stage.security.ext.dir>${stage.opt.dir}/ext/security</stage.security.ext.dir> <stage.operations.ext.dir>${stage.opt.dir}/ext/operations</stage.operations.ext.dir> <stage.metadata.consumer.providers.ext.dir>${stage.opt.dir}/ext/metadataconsumers</stage.metadata.consumer.providers.ext.dir> <stage.runtime.providers.ext.dir>${stage.opt.dir}/ext/runtimeproviders</stage.runtime.providers.ext.dir> <stage.securestores.ext.dir>${stage.opt.dir}/ext/securestores</stage.securestores.ext.dir> <stage.storage.ext.dir>${stage.opt.dir}/ext/storageproviders</stage.storage.ext.dir> <stage.authenticators.ext.dir>${stage.opt.dir}/ext/authenticators</stage.authenticators.ext.dir> <stage.credential.provider.extensions.dir>${stage.opt.dir}/ext/credentialproviders</stage.credential.provider.extensions.dir> <stage.messaging.ext.dir>${stage.opt.dir}/ext/messagingproviders</stage.messaging.ext.dir> <stage.metricswriters.ext.dir>${stage.opt.dir}/ext/metricswriters/google_cloud_monitoring_writer </stage.metricswriters.ext.dir> <stage.eventwriters.ext.dir>${stage.opt.dir}/ext/eventwriters/google_cloud_pubsub_writer </stage.eventwriters.ext.dir> <stage.metadataconsumers.ext.dir>${stage.opt.dir}/ext/metadataconsumers/data-catalog-consumer </stage.metadataconsumers.ext.dir> <stage.encryption.ext.dir>${stage.opt.dir}/ext/encryption</stage.encryption.ext.dir> <stage.bootstrap.dir>${stage.opt.dir}/bootstrap</stage.bootstrap.dir> <stage.capability.dir>${stage.opt.dir}/capability-config</stage.capability.dir> <additional.artifacts.jar.pattern>**/target/*.jar</additional.artifacts.jar.pattern> <additional.artifacts.config.pattern>**/target/*.json</additional.artifacts.config.pattern> <additional.artifacts.exclude.pattern>**/target/*-tests.jar</additional.artifacts.exclude.pattern> <security.ext.jar.pattern>**/target/*.jar</security.ext.jar.pattern> <security.ext.config.pattern>**/target/*.json</security.ext.config.pattern> <security.ext.exclude.pattern>**/target/*-tests.jar</security.ext.exclude.pattern> <metricswriters.ext.jar.pattern>**/target/libexec/*.jar</metricswriters.ext.jar.pattern> <metricswriters.ext.config.pattern>**/target/libexec/*.json</metricswriters.ext.config.pattern> <metricswriters.ext.exclude.pattern>**/target/libexec/*-tests.jar</metricswriters.ext.exclude.pattern> <eventwriters.ext.jar.pattern>**/target/libexec/*.jar</eventwriters.ext.jar.pattern> <eventwriters.ext.config.pattern>**/target/libexec/*.json</eventwriters.ext.config.pattern> <eventwriters.ext.exclude.pattern>**/target/libexec/*-tests.jar</eventwriters.ext.exclude.pattern> <metadataconsumers.ext.jar.pattern>**/target/libexec/*.jar</metadataconsumers.ext.jar.pattern> <metadataconsumers.ext.config.pattern>**/target/libexec/*.json</metadataconsumers.ext.config.pattern> <metadataconsumers.ext.exclude.pattern>**/target/libexec/*-tests.jar</metadataconsumers.ext.exclude.pattern> <!-- contains hydrator upgrade tool. Should be moved out when Hydrator is moved out of CDAP --> <stage.libexec.dir>${stage.opt.dir}/libexec</stage.libexec.dir> </properties> <!-- Add dependencies on spark api and core. It just for making sure those artifacts are built before this --> <dependencies> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-api-spark3_2.12</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-spark-core3_2.12</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <!-- Add dependencies on various extensions to make sure they are built before master --> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-operational-stats-core</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-runtime-ext-emr</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-runtime-ext-dataproc</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-runtime-ext-remote-hadoop</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-securestore-ext-cloudkms</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-securestore-ext-gcp-secretstore</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-authenticator-ext-gcp</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-data-pipeline3_2.12</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-data-streams3_2.12</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-storage-ext-spanner</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-credential-ext-gcp-wi</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-encryption-ext-tink</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.8</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <executions> <execution> <id>copy-pipelines-spark3_2.12</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.artifacts.dir}/${spark3.artifacts.dir}</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-app-templates/cdap-etl/cdap-data-pipeline3_2.12/target </directory> <includes> <include>cdap-data-pipeline3_2.12-${project.version}.jar</include> </includes> </resource> <resource> <directory> ${project.parent.basedir}/cdap-app-templates/cdap-etl/cdap-data-streams3_2.12/target </directory> <includes> <include>cdap-data-streams3_2.12-${project.version}.jar</include> </includes> </resource> </resources> </configuration> </execution> <execution> <id>copy-etl-tools</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.libexec.dir}</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-app-templates/cdap-etl/cdap-etl-tools/target </directory> <includes> <include>cdap-etl-tools-${project.version}.jar</include> </includes> </resource> </resources> </configuration> </execution> <execution> <id>copy-dq</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.artifacts.dir}</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-app-templates/cdap-data-quality/target </directory> <includes> <include>cdap-data-quality-${project.version}.jar</include> </includes> </resource> </resources> </configuration> </execution> <execution> <id>copy-program-report-app-spark3</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.artifacts.dir}/${spark3.artifacts.dir}</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-app-templates/cdap-program-report/target </directory> <includes> <include>cdap-program-report-${project.version}.jar</include> </includes> </resource> </resources> </configuration> </execution> <!-- Copy cdap-kms. --> <execution> <id>copy-cdap-kms</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.lib.dir}</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-kms/target/ </directory> <includes> <include>io.cdap.cdap.cdap-kms-${project.version}.jar</include> </includes> </resource> </resources> </configuration> </execution> <!-- Copy runtime extensions. Currently only has Spark --> <execution> <id>copy-spark3-extensions</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.runtime.ext.dir}/${spark3.artifacts.dir}</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-spark-core3_2.12/target/libexec </directory> <!-- Only package with the cdap extensions, not the spark assembly jar --> <includes> <include>io.cdap.cdap.cdap-api-spark*.jar</include> <include>io.cdap.cdap.cdap-spark-*.jar</include> </includes> </resource> </resources> </configuration> </execution> <!-- Copy operations extensions --> <execution> <id>copy-operations-extensions</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.operations.ext.dir}/core</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-operational-stats-core/target/ </directory> <includes> <include>io.cdap.cdap.cdap-operational-stats-core-${project.version}.jar</include> </includes> </resource> </resources> </configuration> </execution> <!-- Copy bootstrap file --> <execution> <id>copy-bootstrap-file</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.bootstrap.dir}</outputDirectory> <resources> <resource> <directory>${project.basedir}/src/main/resources/bootstrap</directory> <includes> <include>*.json</include> </includes> </resource> </resources> </configuration> </execution> <execution> <id>copy-capability-files</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.capability.dir}</outputDirectory> <resources> <resource> <directory>${project.basedir}/src/main/resources/capability</directory> <includes> <include>*.json</include> </includes> </resource> </resources> </configuration> </execution> <!-- Copy runtime provider extensions --> <execution> <id>copy-runtime-ext-emr</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.runtime.providers.ext.dir}/emr</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-runtime-ext-emr/target/libexec/ </directory> <includes> <include>*.jar</include> <include>*.json</include> </includes> </resource> </resources> </configuration> </execution> <execution> <id>copy-runtime-ext-dataproc</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.runtime.providers.ext.dir}/gcp-dataproc</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-runtime-ext-dataproc/target/libexec/ </directory> <includes> <include>*.jar</include> <include>*.json</include> </includes> </resource> </resources> </configuration> </execution> <execution> <id>copy-runtime-ext-remote-hadoop</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.runtime.providers.ext.dir}/remote-hadoop</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-runtime-ext-remote-hadoop/target/libexec/ </directory> <includes> <include>*.jar</include> <include>*.json</include> </includes> </resource> </resources> </configuration> </execution> <!-- Copy secure store extensions--> <execution> <id>copy-securestore-ext-cloudkms</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.securestores.ext.dir}/gcp-cloudkms</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-securestore-ext-cloudkms/target/libexec/ </directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </configuration> </execution> <execution> <id>copy-securestore-ext-gcp-secretstore</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.securestores.ext.dir}/gcp-secretstore</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-securestore-ext-gcp-secretstore/target/libexec/ </directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </configuration> </execution> <!-- Copy storage engine extensions --> <execution> <id>copy-storage-ext-spanner</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.storage.ext.dir}/gcp-spanner</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-storage-ext-spanner/target/libexec/ </directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </configuration> </execution> <!-- Copy messaging extensions --> <execution> <id>copy-messaging-ext-spanner</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.messaging.ext.dir}/gcp-spanner</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-messaging-ext-spanner/target/libexec/ </directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </configuration> </execution> <!-- Copy remote authenticator extensions --> <execution> <id>copy-authenticator-ext-gcp</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.authenticators.ext.dir}/gcp-remote-authenticator </outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-authenticator-ext-gcp/target/libexec/ </directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </configuration> </execution> <!-- Copy credential provider extensions --> <execution> <id>copy-credential-ext-gcp-wi</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.credential.provider.extensions.dir}/gcp-wi-credential-provider</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-credential-ext-gcp-wi/target/libexec/ </directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </configuration> </execution> <!-- Copy encryption extensions --> <execution> <id>copy-encryption-ext-tink</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.encryption.ext.dir}/tink</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-encryption-ext-tink/target/libexec/ </directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.7</version> <executions> <!-- Copy any additional system artifacts. For example, if you want to include plugins from hydrator-plugins. --> <execution> <id>copy-additional-system-artifacts</id> <phase>process-resources</phase> <configuration> <target if="additional.artifacts.dir"> <copy todir="${stage.artifacts.dir}" flatten="true"> <fileset dir="${additional.artifacts.dir}"> <include name="${additional.artifacts.jar.pattern}"/> <include name="${additional.artifacts.config.pattern}"/> <exclude name="${additional.artifacts.exclude.pattern}"/> <exclude name="**/target/*-sources.jar"/> <exclude name="**/target/*-javadoc.jar"/> <!-- Wrangler excludes --> <exclude name="**/target/wrangler-core*"/> <exclude name="**/target/wrangler-test*"/> <!--We don't want to package the following plugins with CDAP--> <exclude name="**/target/solrsearch-plugins*"/> <exclude name="**/target/hive-plugins*"/> <exclude name="**/target/elasticsearch-plugins*"/> <exclude name="**/target/mongodb-plugins*"/> <exclude name="**/target/cassandra-plugins*"/> </fileset> </copy> </target> </configuration> <goals> <goal>run</goal> </goals> </execution> <execution> <id>copy-security-extensions-artifacts</id> <phase>process-resources</phase> <configuration> <target if="security.extensions.dir"> <copy todir="${stage.security.ext.dir}" flatten="true"> <fileset dir="${security.extensions.dir}"> <include name="${security.ext.jar.pattern}"/> <include name="${security.ext.config.pattern}"/> <exclude name="${security.ext.exclude.pattern}"/> <exclude name="**/target/*-sources.jar"/> <exclude name="**/target/*-javadoc.jar"/> </fileset> </copy> </target> </configuration> <goals> <goal>run</goal> </goals> </execution> <execution> <id>copy-metricswriters-extensions-artifacts</id> <phase>process-resources</phase> <configuration> <target if="metricswriters.extensions.dir"> <copy todir="${stage.metricswriters.ext.dir}" flatten="true"> <fileset dir="${metricswriters.extensions.dir}"> <include name="${metricswriters.ext.jar.pattern}"/> <include name="${metricswriters.ext.config.pattern}"/> <exclude name="${metricswriters.ext.exclude.pattern}"/> <exclude name="**/target/*-sources.jar"/> <exclude name="**/target/*-javadoc.jar"/> </fileset> </copy> </target> </configuration> <goals> <goal>run</goal> </goals> </execution> <execution> <id>copy-metadataconsumers-extensions-artifacts</id> <phase>process-resources</phase> <configuration> <target if="metadataconsumers.extensions.dir"> <copy todir="${stage.metadataconsumers.ext.dir}" flatten="true"> <fileset dir="${metadataconsumers.extensions.dir}"> <include name="${metadataconsumers.ext.jar.pattern}"/> <include name="${metadataconsumers.ext.config.pattern}"/> <exclude name="${metadataconsumers.ext.exclude.pattern}"/> <exclude name="**/target/*-sources.jar"/> <exclude name="**/target/*-javadoc.jar"/> </fileset> </copy> </target> </configuration> <goals> <goal>run</goal> </goals> </execution> <execution> <id>copy-eventwriters-extensions-artifacts</id> <phase>process-resources</phase> <configuration> <target if="eventwriters.extensions.dir"> <copy todir="${stage.eventwriters.ext.dir}" flatten="true"> <fileset dir="${eventwriters.extensions.dir}"> <include name="${eventwriters.ext.jar.pattern}"/> <include name="${eventwriters.ext.config.pattern}"/> <exclude name="${eventwriters.ext.exclude.pattern}"/> <exclude name="**/target/*-sources.jar"/> <exclude name="**/target/*-javadoc.jar"/> </fileset> </copy> </target> </configuration> <goals> <goal>run</goal> </goals> </execution> <execution> <id>rename-pipeline-jars-spark3</id> <phase>process-resources</phase> <goals> <goal>run</goal> </goals> <configuration> <target> <move file="${stage.artifacts.dir}/${spark3.artifacts.dir}/cdap-data-pipeline3_2.12-${project.version}.jar" tofile="${stage.artifacts.dir}/${spark3.artifacts.dir}/cdap-data-pipeline-${project.version}.jar" /> <move file="${stage.artifacts.dir}/${spark3.artifacts.dir}/cdap-data-streams3_2.12-${project.version}.jar" tofile="${stage.artifacts.dir}/${spark3.artifacts.dir}/cdap-data-streams-${project.version}.jar" /> </target> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <!-- Profile for building master to be use in Kubernetes environment. This profile requires the dist profile to be enabled as well --> <profile> <id>k8s</id> <properties> <commons-io.version>2.12.0</commons-io.version> <stage.hadoop.lib.dir>${stage.opt.dir}/lib/hadoop</stage.hadoop.lib.dir> <stage.master.environments.ext.dir>${stage.opt.dir}/ext/environments</stage.master.environments.ext.dir> </properties> <dependencies> <!-- Adding the cdap-kubernetes as dependency to make sure it is built before cdap-master --> <dependency> <groupId>io.cdap.cdap</groupId> <artifactId>cdap-kubernetes</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-to-slf4j</artifactId> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>${commons-io.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <executions> <!-- Copy k8s extensions--> <execution> <id>copy-master-ext-k8s</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration combine.self="override"> <outputDirectory>${stage.master.environments.ext.dir}/k8s</outputDirectory> <resources> <resource> <directory> ${project.parent.basedir}/cdap-kubernetes/target/libexec/ </directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.8</version> <executions> <!-- Need to override the copy-dependencies to exclude Kafka and Scala in K8s build, but to include Hadoop --> <execution> <id>copy-dependencies</id> <phase>prepare-package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <excludeGroupIds> ${dependency.groupId.exclusions},org.scala-lang,org.apache.kafka,net.jpountz.lz4 </excludeGroupIds> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>rpm-prepare</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.7</version> </plugin> </plugins> </build> </profile> <profile> <id>deb-prepare</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.7</version> </plugin> </plugins> </build> </profile> <profile> <id>rpm</id> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.3.1</version> </plugin> <!-- Extra deployment for rpm package. --> <!-- This has to be in child level, otherwise all modules would try to deploy. --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>2.8</version> <executions> <execution> <id>deploy-rpm</id> <phase>deploy</phase> <goals> <goal>deploy-file</goal> </goals> <configuration> <version>${project.version}</version> <groupId>${dist.deploy.groupId}</groupId> <artifactId>${project.artifactId}</artifactId> <packaging>noarch.rpm</packaging> <generatePom>false</generatePom> <file>${project.build.directory}/${project.artifactId}-${package.version}-1.noarch.rpm</file> <classifier>1</classifier> <repositoryId>continuuity</repositoryId> <url>${deploy.url}</url> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>deb</id> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.3.1</version> </plugin> <!-- Extra deployment for deb package --> <!-- This has to be in child level, otherwise all modules would try to deploy. --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>2.8</version> <executions> <execution> <id>deploy-deb</id> <phase>deploy</phase> <goals> <goal>deploy-file</goal> </goals> <configuration> <version>${project.version}</version> <groupId>${dist.deploy.groupId}</groupId> <artifactId>${project.artifactId}</artifactId> <packaging>deb</packaging> <generatePom>false</generatePom> <file>${project.build.directory}/${project.artifactId}_${package.version}-1_all.deb</file> <repositoryId>continuuity</repositoryId> <url>${deploy.url}</url> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>tgz</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> </plugin> <!-- Extra deployment for tgz package --> <!-- This has to be in child level, otherwise all modules would try to deploy. --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>2.8</version> <executions> <execution> <id>deploy-tgz</id> <phase>deploy</phase> <goals> <goal>deploy-file</goal> </goals> <configuration> <version>${project.version}</version> <groupId>${dist.deploy.groupId}</groupId> <artifactId>${project.artifactId}</artifactId> <packaging>tar.gz</packaging> <generatePom>false</generatePom> <file>${project.build.directory}/${project.artifactId}-${package.version}.tar.gz</file> <repositoryId>continuuity</repositoryId> <url>${deploy.url}</url> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> <build> <!-- Resource filtering for non xml files only --> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <excludes> <exclude>**/*.xml</exclude> </excludes> </resource> </resources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine>@{argLine} -Xmx6000m -Djava.awt.headless=true -XX:+UseG1GC -XX:OnOutOfMemoryError="kill -9 %p" -XX:+HeapDumpOnOutOfMemoryError</argLine> <forkCount>2</forkCount> </configuration> </plugin> </plugins> </build> </project>