<?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">
<modelVersion > 4.0.0</modelVersion>
<parent >
<groupId > org.apache</groupId>
<artifactId > apache</artifactId>
<version > 25</version>
</parent>
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler</artifactId>
<version > dev-SNAPSHOT</version>
<packaging > pom</packaging>
<name > ${project.artifactId}</name>
<description > Dolphin Scheduler is a distributed and easy-to-expand visual DAG workflow scheduling system, dedicated
to solving the complex dependencies in data processing, making the scheduling system out of the box for data
processing.</description>
<modules >
<module > dolphinscheduler-bom</module>
<module > dolphinscheduler-alert</module>
<module > dolphinscheduler-spi</module>
<module > dolphinscheduler-registry</module>
<module > dolphinscheduler-task-plugin</module>
<module > dolphinscheduler-common</module>
<module > dolphinscheduler-api</module>
<module > dolphinscheduler-yarn-aop</module>
<module > dolphinscheduler-dao</module>
<module > dolphinscheduler-dist</module>
<module > dolphinscheduler-service</module>
<module > dolphinscheduler-microbench</module>
<module > dolphinscheduler-data-quality</module>
<module > dolphinscheduler-standalone-server</module>
<module > dolphinscheduler-datasource-plugin</module>
<module > dolphinscheduler-meter</module>
<module > dolphinscheduler-master</module>
<module > dolphinscheduler-worker</module>
<module > dolphinscheduler-tools</module>
<module > dolphinscheduler-ui</module>
<module > dolphinscheduler-scheduler-plugin</module>
<module > dolphinscheduler-storage-plugin</module>
<module > dolphinscheduler-extract</module>
<module > dolphinscheduler-dao-plugin</module>
<module > dolphinscheduler-authentication</module>
<module > dolphinscheduler-eventbus</module>
</modules>
<properties >
<project.build.sourceEncoding > UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding > UTF-8</project.reporting.outputEncoding>
<spring.boot.version > 2.6.1</spring.boot.version>
<java.version > 1.8</java.version>
<junit.version > 5.9.0</junit.version>
<mockito.version > 3.12.4</mockito.version>
<spotbugs.version > 3.1.12</spotbugs.version>
<maven-compiler-plugin.version > 3.3</maven-compiler-plugin.version>
<maven-assembly-plugin.version > 3.3.0</maven-assembly-plugin.version>
<maven-release-plugin.version > 2.5.3</maven-release-plugin.version>
<maven-source-plugin.version > 2.4</maven-source-plugin.version>
<maven-surefire-plugin.version > 3.0.0-M6</maven-surefire-plugin.version>
<maven-dependency-plugin.version > 3.1.1</maven-dependency-plugin.version>
<maven-shade-plugin.version > 3.3.0</maven-shade-plugin.version>
<rpm-maven-plugion.version > 2.2.0</rpm-maven-plugion.version>
<aspectj-maven-plugin.version > 1.14.0</aspectj-maven-plugin.version>
<spotless.version > 2.27.2</spotless.version>
<jacoco.version > 0.8.8</jacoco.version>
<cobertura-maven-plugin.version > 2.7</cobertura-maven-plugin.version>
<auto-service.version > 1.0.1</auto-service.version>
<jacoco.skip > false</jacoco.skip>
<maven-jar-plugin.version > 3.2.0</maven-jar-plugin.version>
<exec-maven-plugin.version > 3.0.0</exec-maven-plugin.version>
<owasp-dependency-check-maven.version > 10.0.2</owasp-dependency-check-maven.version>
<lombok.version > 1.18.20</lombok.version>
<awaitility.version > 4.2.0</awaitility.version>
<truth.version > 1.4.2</truth.version>
<docker.hub > apache</docker.hub>
<docker.repo > ${project.name}</docker.repo>
<docker.tag > ${project.version}</docker.tag>
<docker.build.skip > true</docker.build.skip>
<docker.push.skip > true</docker.push.skip>
<skipDepCheck > true</skipDepCheck>
<build.ui.skip > false</build.ui.skip>
<spotless.skip > false</spotless.skip>
<skipUT > false</skipUT>
</properties>
<dependencyManagement >
<dependencies >
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-master</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-worker</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-api</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-alert-server</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-standalone-server</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-ui</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-yarn-aop</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-common</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-dao</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-service</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-meter</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-spi</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-data-quality</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-tools</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-alert-api</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-alert-all</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-registry-api</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-registry-all</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-scheduler-api</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-scheduler-all</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-datasource-api</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-datasource-all</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-task-api</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-task-all</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-storage-api</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-storage-all</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-extract-base</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-extract-master</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-extract-worker</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-extract-alert</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-dao-plugin-all</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-dao-api</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-dao-h2</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-dao-mysql</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-dao-postgresql</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-aws-authentication</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.junit</groupId>
<artifactId > junit-bom</artifactId>
<version > ${junit.version}</version>
<type > pom</type>
<scope > import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies >
<!--
NOTE: only development / test phase dependencies (scope = test / provided)
that won't be packaged into final jar can be declared here.
For example: annotation processors, test dependencies that are used by most
of the submodules.
-->
<dependency >
<groupId > org.junit.jupiter</groupId>
<artifactId > junit-jupiter-api</artifactId>
<scope > test</scope>
</dependency>
<dependency >
<groupId > org.junit.vintage</groupId>
<artifactId > junit-vintage-engine</artifactId>
<scope > test</scope>
</dependency>
<dependency >
<groupId > org.mockito</groupId>
<artifactId > mockito-core</artifactId>
<version > ${mockito.version}</version>
<scope > test</scope>
</dependency>
<dependency >
<groupId > org.mockito</groupId>
<artifactId > mockito-inline</artifactId>
<version > ${mockito.version}</version>
<scope > test</scope>
</dependency>
<dependency >
<groupId > org.mockito</groupId>
<artifactId > mockito-junit-jupiter</artifactId>
<version > ${mockito.version}</version>
<scope > test</scope>
</dependency>
<dependency >
<groupId > org.jacoco</groupId>
<artifactId > org.jacoco.agent</artifactId>
<version > ${jacoco.version}</version>
<classifier > runtime</classifier>
<scope > test</scope>
</dependency>
<dependency >
<groupId > org.springframework.boot</groupId>
<artifactId > spring-boot-configuration-processor</artifactId>
<version > ${spring.boot.version}</version>
<optional > true</optional>
</dependency>
<dependency >
<groupId > com.google.auto.service</groupId>
<artifactId > auto-service</artifactId>
<version > ${auto-service.version}</version>
<scope > provided</scope>
</dependency>
<dependency >
<groupId > org.projectlombok</groupId>
<artifactId > lombok</artifactId>
<version > ${lombok.version}</version>
<scope > provided</scope>
</dependency>
<dependency >
<groupId > org.awaitility</groupId>
<artifactId > awaitility</artifactId>
<version > ${awaitility.version}</version>
<scope > test</scope>
</dependency>
<dependency >
<groupId > com.google.truth</groupId>
<artifactId > truth</artifactId>
<version > ${truth.version}</version>
<scope > test</scope>
</dependency>
</dependencies>
<build >
<pluginManagement >
<plugins >
<plugin >
<groupId > org.codehaus.mojo</groupId>
<artifactId > rpm-maven-plugin</artifactId>
<version > ${rpm-maven-plugion.version}</version>
<inherited > false</inherited>
</plugin>
<plugin >
<groupId > org.codehaus.mojo</groupId>
<artifactId > aspectj-maven-plugin</artifactId>
<version > ${aspectj-maven-plugin.version}</version>
<configuration >
<complianceLevel > ${java.version}</complianceLevel>
<source > ${java.version}</source>
<target > ${java.version}</target>
<showWeaveInfo > true</showWeaveInfo>
<verbose > true</verbose>
<Xlint > ignore</Xlint>
<encoding > UTF-8</encoding>
</configuration>
<executions >
<execution >
<goals >
<goal > compile</goal>
<goal > test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-compiler-plugin</artifactId>
<version > ${maven-compiler-plugin.version}</version>
<configuration >
<source > ${java.version}</source>
<target > ${java.version}</target>
<testSource > ${java.version}</testSource>
<testTarget > ${java.version}</testTarget>
</configuration>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-release-plugin</artifactId>
<version > ${maven-release-plugin.version}</version>
<configuration >
<tagNameFormat > @{project.version}</tagNameFormat>
</configuration>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-assembly-plugin</artifactId>
<version > ${maven-assembly-plugin.version}</version>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-dependency-plugin</artifactId>
<version > ${maven-dependency-plugin.version}</version>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-shade-plugin</artifactId>
<version > ${maven-shade-plugin.version}</version>
<configuration >
<shadedArtifactAttached > true</shadedArtifactAttached>
<shadedClassifierName > shade</shadedClassifierName>
<createDependencyReducedPom > false</createDependencyReducedPom>
<promoteTransitiveDependencies > false</promoteTransitiveDependencies>
<filters >
<filter >
<artifact > *:*</artifact>
<excludes >
<exclude > META-INF/*.SF</exclude>
<exclude > META-INF/*.DSA</exclude>
<exclude > META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
<executions >
<execution >
<goals >
<goal > shade</goal>
</goals>
<phase > package</phase>
<configuration >
<transformers combine.children= "append" >
<!-- The service transformer is needed to merge META - INF/services files -->
<transformer implementation= "org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-jar-plugin</artifactId>
<version > ${maven-jar-plugin.version}</version>
</plugin>
<plugin >
<groupId > org.codehaus.mojo</groupId>
<artifactId > exec-maven-plugin</artifactId>
<version > ${exec-maven-plugin.version}</version>
</plugin>
<plugin >
<groupId > org.owasp</groupId>
<artifactId > dependency-check-maven</artifactId>
<version > ${owasp-dependency-check-maven.version}</version>
<configuration >
<skip > ${skipDepCheck}</skip>
<skipProvidedScope > true</skipProvidedScope>
<skipRuntimeScope > true</skipRuntimeScope>
<skipSystemScope > true</skipSystemScope>
<failBuildOnCVSS > 7</failBuildOnCVSS>
<nvdApiKeyEnvironmentVariable > NIST_NVD_API_KEY</nvdApiKeyEnvironmentVariable>
</configuration>
<executions >
<execution >
<goals >
<goal > aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins >
<plugin >
<groupId > org.owasp</groupId>
<artifactId > dependency-check-maven</artifactId>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-release-plugin</artifactId>
<version > ${maven-release-plugin.version}</version>
<configuration >
<autoVersionSubmodules > true</autoVersionSubmodules>
<tagNameFormat > @{project.version}</tagNameFormat>
<tagBase > ${project.version}</tagBase>
</configuration>
<dependencies >
<dependency >
<groupId > org.apache.maven.scm</groupId>
<artifactId > maven-scm-provider-jgit</artifactId>
<version > 1.9.5</version>
</dependency>
</dependencies>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-compiler-plugin</artifactId>
<version > ${maven-compiler-plugin.version}</version>
<configuration >
<source > ${java.version}</source>
<target > ${java.version}</target>
<encoding > ${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-surefire-plugin</artifactId>
<version > ${maven-surefire-plugin.version}</version>
<configuration >
<skip > ${skipUT}</skip>
<systemPropertyVariables >
<jacoco-agent.destfile > ${project.build.directory}/jacoco.exec</jacoco-agent.destfile>
</systemPropertyVariables>
</configuration>
</plugin>
<!-- jenkins plugin jacoco report -->
<plugin >
<groupId > org.jacoco</groupId>
<artifactId > jacoco-maven-plugin</artifactId>
<version > ${jacoco.version}</version>
<configuration >
<skip > ${jacoco.skip}</skip>
<dataFile > ${project.build.directory}/jacoco.exec</dataFile>
</configuration>
<executions >
<execution >
<id > default-instrument</id>
<goals >
<goal > instrument</goal>
</goals>
<configuration >
<excludes > com/github/dreamhead/moco/*</excludes>
</configuration>
</execution>
<execution >
<id > default-restore-instrumented-classes</id>
<goals >
<goal > restore-instrumented-classes</goal>
</goals>
</execution>
<execution >
<id > default-report</id>
<goals >
<goal > report</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin >
<groupId > com.github.spotbugs</groupId>
<artifactId > spotbugs-maven-plugin</artifactId>
<version > ${spotbugs.version}</version>
<configuration >
<xmlOutput > true</xmlOutput>
<threshold > medium</threshold>
<effort > default</effort>
<excludeFilterFile > dev-config/spotbugs-exclude.xml</excludeFilterFile>
<failOnError > true</failOnError>
</configuration>
<dependencies >
<dependency >
<groupId > com.github.spotbugs</groupId>
<artifactId > spotbugs</artifactId>
<version > 4.0.0-beta4</version>
</dependency>
</dependencies>
</plugin>
<plugin >
<groupId > com.diffplug.spotless</groupId>
<artifactId > spotless-maven-plugin</artifactId>
<version > ${spotless.version}</version>
<configuration >
<skip > ${spotless.skip}</skip>
<java >
<eclipse >
<file > ${maven.multiModuleProjectDirectory}/style/spotless_dolphinscheduler_formatter.xml</file>
</eclipse>
<removeUnusedImports />
<licenseHeader >
<file > ${maven.multiModuleProjectDirectory}/style/license-header</file>
</licenseHeader>
<importOrder >
<file > ${maven.multiModuleProjectDirectory}/style/eclipse.importorder</file>
</importOrder>
<replaceRegex >
<name > Remove wildcard imports</name>
<searchRegex > import\s+(static)*\s*[^\*\s]+\*;(\r\n|\r|\n)</searchRegex>
<replacement > $1</replacement>
</replaceRegex>
<replaceRegex >
<name > Block powermock</name>
<searchRegex > import\s+org\.powermock\.[^\*\s]*(|\*);(\r\n|\r|\n)</searchRegex>
<replacement > $1</replacement>
</replaceRegex>
<replaceRegex >
<name > Block jUnit4 imports</name>
<searchRegex > import\s+org\.junit\.[^jupiter][^\*\s]*(|\*);(\r\n|\r|\n)</searchRegex>
<replacement > $1</replacement>
</replaceRegex>
<replaceRegex >
<name > Block kubernetes-client</name>
<searchRegex > import\s+io\.kubernetes\.client\.[^\*\s]*(|\*);(\r\n|\r|\n)</searchRegex>
<replacement > $1</replacement>
</replaceRegex>
<includes >
<include > src/main/java/**/*.java</include>
<include > src/test/java/**/*.java</include>
<include > dolphinscheduler-e2e/dolphinscheduler-e2e-case/src/test/java/**/*.java</include>
<include > dolphinscheduler-e2e/dolphinscheduler-e2e-core/src/main/java/**/*.java</include>
<include > dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/**/*.java</include>
<include > dolphinscheduler-api-test/dolphinscheduler-api-test-core/src/main/java/**/*.java</include>
</includes>
<excludes >
<!-- Using customer license -->
<exclude > src/main/java/org/apache/dolphinscheduler/common/utils/CodeGenerateUtils.java</exclude>
</excludes>
</java>
<pom >
<sortPom >
<encoding > UTF-8</encoding>
<nrOfIndentSpace > 4</nrOfIndentSpace>
<keepBlankLines > true</keepBlankLines>
<indentBlankLines > false</indentBlankLines>
<indentSchemaLocation > true</indentSchemaLocation>
<spaceBeforeCloseEmptyElement > true</spaceBeforeCloseEmptyElement>
<sortModules > false</sortModules>
<sortExecutions > false</sortExecutions>
<predefinedSortOrder > custom_1</predefinedSortOrder>
<expandEmptyElements > false</expandEmptyElements>
<sortProperties > false</sortProperties>
</sortPom>
<replace >
<name > Leading blank line</name>
<search > project</search>
<replacement > project</replacement>
</replace>
</pom>
<markdown >
<includes >
<include > docs/**/*.md</include>
</includes>
<excludes >
<exclude > **/.github/**/*.md</exclude>
</excludes>
<flexmark />
</markdown>
<upToDateChecking >
<enabled > true</enabled>
</upToDateChecking>
</configuration>
<executions >
<execution >
<goals >
<goal > check</goal>
</goals>
<phase > compile</phase>
</execution>
</executions>
</plugin>
<plugin >
<groupId > org.codehaus.mojo</groupId>
<artifactId > cobertura-maven-plugin</artifactId>
<version > ${cobertura-maven-plugin.version}</version>
<configuration >
<check />
<aggregate > true</aggregate>
<outputDirectory > ./target/cobertura</outputDirectory>
<encoding > ${project.build.sourceEncoding}</encoding>
<quiet > true</quiet>
<format > xml</format>
<instrumentation >
<ignoreTrivial > true</ignoreTrivial>
</instrumentation>
</configuration>
</plugin>
<plugin >
<artifactId > maven-source-plugin</artifactId>
<version > ${maven-source-plugin.version}</version>
<executions >
<execution >
<id > attach-sources</id>
<goals >
<goal > jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-dependency-plugin</artifactId>
<version > ${maven-dependency-plugin.version}</version>
<executions >
<execution >
<id > analyze-dependencies</id>
<goals >
<goal > analyze-only</goal>
</goals>
<configuration >
<ignoredDependencies >
<!-- Because of SpringBoot auto - configurations, the configuration is happening outside of your application code, so Maven believes these dependencies to be unused -->
<!-- Static code analysis tools like (maven - dependency - plugin) can not detect runtime dependencies, so you should instruct them about runtime dependencies -->
<!-- https://stackoverflow.com/questions/37528928/spring - boot - core - dependencies - seen - as - unused - by - maven - dependency - plugin -->
<ignoredDependency > org.springframework*:*</ignoredDependency>
<ignoredDependency > org.apache.dolphinscheduler:dolphinscheduler-meter</ignoredDependency>
</ignoredDependencies>
<ignoreNonCompile > true</ignoreNonCompile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<url > https://dolphinscheduler.apache.org</url>
<mailingLists >
<mailingList >
<name > DolphinScheduler Developer List</name>
<subscribe > dev-subscribe@dolphinscheduler.apache.org</subscribe>
<unsubscribe > dev-unsubscribe@dolphinscheduler.apache.org</unsubscribe>
<post > dev@dolphinscheduler.apache.org</post>
</mailingList>
</mailingLists>
<scm >
<connection > scm:git:https://github.com/apache/dolphinscheduler.git</connection>
<developerConnection > scm:git:https://github.com/apache/dolphinscheduler.git</developerConnection>
<url > https://github.com/apache/dolphinscheduler</url>
<tag > HEAD</tag>
</scm>
<profiles >
<profile >
<id > docker</id>
<properties >
<docker.build.skip > false</docker.build.skip>
<docker.push.skip > false</docker.push.skip>
</properties>
</profile>
<profile >
<id > helm-doc</id>
<build >
<plugins >
<plugin >
<groupId > org.codehaus.mojo</groupId>
<artifactId > exec-maven-plugin</artifactId>
<version > ${exec-maven-plugin.version}</version>
<executions >
<execution >
<id > helm-doc</id>
<goals >
<goal > exec</goal>
</goals>
<phase > validate</phase>
<configuration >
<executable > docker</executable>
<workingDirectory > ${project.basedir}</workingDirectory>
<arguments >
<argument > run</argument>
<argument > --rm</argument>
<argument > --volume</argument>
<argument > ${project.basedir}/deploy/kubernetes:/helm-docs</argument>
<argument > jnorwood/helm-docs:v1.11.3</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>