<?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>
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler</artifactId>
<version > 1.2.1-SNAPSHOT</version>
<packaging > pom</packaging>
<name > ${project.artifactId}</name>
<url > http://dolphinscheduler.apache.org</url>
<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>
<licenses >
<license >
<name > Apache License 2.0</name>
<url > http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution > repo</distribution>
</license>
</licenses>
<scm >
<connection > scm:git:https://github.com/apache/incubator-dolphinscheduler.git</connection>
<developerConnection > scm:git:https://github.com/apache/incubator-dolphinscheduler.git</developerConnection>
<url > https://github.com/apache/incubator-dolphinscheduler</url>
<tag > HEAD</tag>
</scm>
<mailingLists >
<mailingList >
<name > DolphinScheduler Developer List</name>
<post > dev@dolphinscheduler.incubator.apache.org</post>
<subscribe > dev-subscribe@dolphinscheduler.incubator.apache.org</subscribe>
<unsubscribe > dev-unsubscribe@dolphinscheduler.incubator.apache.org</unsubscribe>
</mailingList>
</mailingLists>
<parent >
<groupId > org.apache</groupId>
<artifactId > apache</artifactId>
<version > 21</version>
</parent>
<properties >
<project.build.sourceEncoding > UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding > UTF-8</project.reporting.outputEncoding>
<curator.version > 2.12.0</curator.version>
<spring.version > 5.1.5.RELEASE</spring.version>
<spring.boot.version > 2.1.3.RELEASE</spring.boot.version>
<java.version > 1.8</java.version>
<logback.version > 1.2.3</logback.version>
<hadoop.version > 2.7.3</hadoop.version>
<quartz.version > 2.2.3</quartz.version>
<jackson.version > 2.9.8</jackson.version>
<mybatis-plus.version > 3.2.0</mybatis-plus.version>
<lombok.version > 1.18.4</lombok.version>
<mybatis.spring.version > 2.0.1</mybatis.spring.version>
<cron.utils.version > 5.0.5</cron.utils.version>
<fastjson.version > 1.2.61</fastjson.version>
<druid.version > 1.1.14</druid.version>
<h2.version > 1.3.163</h2.version>
<commons.codec.version > 1.6</commons.codec.version>
<commons.logging.version > 1.1.1</commons.logging.version>
<httpclient.version > 4.4.1</httpclient.version>
<httpcore.version > 4.4.1</httpcore.version>
<junit.version > 4.12</junit.version>
<mysql.connector.version > 5.1.34</mysql.connector.version>
<slf4j.api.version > 1.7.5</slf4j.api.version>
<slf4j.log4j12.version > 1.7.5</slf4j.log4j12.version>
<commons.collections.version > 3.2.2</commons.collections.version>
<commons.lang.version > 2.3</commons.lang.version>
<commons.lang3.version > 3.5</commons.lang3.version>
<commons.httpclient > 3.0.1</commons.httpclient>
<commons.beanutils.version > 1.7.0</commons.beanutils.version>
<commons.configuration.version > 1.10</commons.configuration.version>
<commons.email.version > 1.5</commons.email.version>
<poi.version > 3.17</poi.version>
<freemarker.version > 2.3.21</freemarker.version>
<javax.servlet.api.version > 3.1.0</javax.servlet.api.version>
<commons.collections4.version > 4.1</commons.collections4.version>
<guava.version > 20.0</guava.version>
<postgresql.version > 42.1.4</postgresql.version>
<hive.jdbc.version > 2.1.0</hive.jdbc.version>
<commons.io.version > 2.4</commons.io.version>
<oshi.core.version > 3.5.0</oshi.core.version>
<clickhouse.jdbc.version > 0.1.52</clickhouse.jdbc.version>
<mssql.jdbc.version > 6.1.0.jre8</mssql.jdbc.version>
<jsp.version > 6.1.14</jsp.version>
<spotbugs.version > 3.1.12</spotbugs.version>
<checkstyle.version > 3.0.0</checkstyle.version>
<apache.rat.version > 0.13</apache.rat.version>
<zookeeper.version > 3.4.14</zookeeper.version>
<frontend-maven-plugin.version > 1.6</frontend-maven-plugin.version>
<maven-compiler-plugin.version > 3.3</maven-compiler-plugin.version>
<maven-assembly-plugin.version > 3.1.0</maven-assembly-plugin.version>
<maven-release-plugin.version > 2.5.3</maven-release-plugin.version>
<maven-javadoc-plugin.version > 2.10.3</maven-javadoc-plugin.version>
<maven-source-plugin.version > 2.4</maven-source-plugin.version>
<maven-surefire-plugin.version > 2.18.1</maven-surefire-plugin.version>
<maven-dependency-plugin.version > 3.1.1</maven-dependency-plugin.version>
<rpm-maven-plugion.version > 2.2.0</rpm-maven-plugion.version>
<jacoco.version > 0.8.4</jacoco.version>
<jcip.version > 1.0</jcip.version>
<maven.deploy.skip > false</maven.deploy.skip>
<cobertura-maven-plugin.version > 2.7</cobertura-maven-plugin.version>
<mockito.version > 2.21.0</mockito.version>
<powermock.version > 2.0.2</powermock.version>
<jasper-runtime.version > 5.5.23</jasper-runtime.version>
<servlet-api.version > 2.5</servlet-api.version>
</properties>
<dependencyManagement >
<dependencies >
<dependency >
<groupId > com.baomidou</groupId>
<artifactId > mybatis-plus-boot-starter</artifactId>
<version > ${mybatis-plus.version}</version>
</dependency>
<dependency >
<groupId > com.baomidou</groupId>
<artifactId > mybatis-plus</artifactId>
<version > ${mybatis-plus.version}</version>
</dependency>
<!-- quartz -->
<dependency >
<groupId > org.quartz-scheduler</groupId>
<artifactId > quartz</artifactId>
<version > ${quartz.version}</version>
</dependency>
<dependency >
<groupId > org.quartz-scheduler</groupId>
<artifactId > quartz-jobs</artifactId>
<version > ${quartz.version}</version>
</dependency>
<dependency >
<groupId > com.cronutils</groupId>
<artifactId > cron-utils</artifactId>
<version > ${cron.utils.version}</version>
</dependency>
<dependency >
<groupId > com.alibaba</groupId>
<artifactId > fastjson</artifactId>
<version > ${fastjson.version}</version>
</dependency>
<dependency >
<groupId > com.alibaba</groupId>
<artifactId > druid</artifactId>
<version > ${druid.version}</version>
</dependency>
<dependency >
<groupId > org.springframework.boot</groupId>
<artifactId > spring-boot-starter-parent</artifactId>
<version > ${spring.boot.version}</version>
<type > pom</type>
<scope > import</scope>
</dependency>
<dependency >
<groupId > org.springframework</groupId>
<artifactId > spring-core</artifactId>
<version > ${spring.version}</version>
</dependency>
<dependency >
<groupId > org.springframework</groupId>
<artifactId > spring-context</artifactId>
<version > ${spring.version}</version>
</dependency>
<dependency >
<groupId > org.springframework</groupId>
<artifactId > spring-beans</artifactId>
<version > ${spring.version}</version>
</dependency>
<dependency >
<groupId > org.springframework</groupId>
<artifactId > spring-tx</artifactId>
<version > ${spring.version}</version>
</dependency>
<dependency >
<groupId > org.springframework</groupId>
<artifactId > spring-jdbc</artifactId>
<version > ${spring.version}</version>
</dependency>
<dependency >
<groupId > org.springframework</groupId>
<artifactId > spring-test</artifactId>
<version > ${spring.version}</version>
<scope > test</scope>
</dependency>
<dependency >
<groupId > com.h2database</groupId>
<artifactId > h2</artifactId>
<version > ${h2.version}</version>
<scope > test</scope>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-server</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-api</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-rpc</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.dolphinscheduler</groupId>
<artifactId > dolphinscheduler-alert</artifactId>
<version > ${project.version}</version>
</dependency>
<dependency >
<groupId > org.apache.curator</groupId>
<artifactId > curator-framework</artifactId>
<version > ${curator.version}</version>
</dependency>
<dependency >
<groupId > org.apache.curator</groupId>
<artifactId > curator-recipes</artifactId>
<version > ${curator.version}</version>
</dependency>
<dependency >
<groupId > org.apache.zookeeper</groupId>
<artifactId > zookeeper</artifactId>
<exclusions >
<exclusion >
<groupId > org.slf4j</groupId>
<artifactId > slf4j-log4j12</artifactId>
</exclusion>
<exclusion >
<artifactId > netty</artifactId>
<groupId > io.netty</groupId>
</exclusion>
<exclusion >
<groupId > com.github.spotbugs</groupId>
<artifactId > spotbugs-annotations</artifactId>
</exclusion>
</exclusions>
<version > ${zookeeper.version}</version>
</dependency>
<dependency >
<groupId > commons-codec</groupId>
<artifactId > commons-codec</artifactId>
<version > ${commons.codec.version}</version>
</dependency>
<dependency >
<groupId > commons-logging</groupId>
<artifactId > commons-logging</artifactId>
<version > ${commons.logging.version}</version>
</dependency>
<dependency >
<groupId > org.apache.httpcomponents</groupId>
<artifactId > httpclient</artifactId>
<version > ${httpclient.version}</version>
</dependency>
<dependency >
<groupId > org.apache.httpcomponents</groupId>
<artifactId > httpcore</artifactId>
<version > ${httpcore.version}</version>
</dependency>
<dependency >
<groupId > com.fasterxml.jackson.core</groupId>
<artifactId > jackson-annotations</artifactId>
<version > ${jackson.version}</version>
</dependency>
<dependency >
<groupId > com.fasterxml.jackson.core</groupId>
<artifactId > jackson-databind</artifactId>
<version > ${jackson.version}</version>
</dependency>
<dependency >
<groupId > com.fasterxml.jackson.core</groupId>
<artifactId > jackson-core</artifactId>
<version > ${jackson.version}</version>
</dependency>
<dependency >
<groupId > junit</groupId>
<artifactId > junit</artifactId>
<version > ${junit.version}</version>
</dependency>
<dependency >
<groupId > org.mockito</groupId>
<artifactId > mockito-core</artifactId>
<version > ${mockito.version}</version>
<type > jar</type>
<scope > test</scope>
</dependency>
<dependency >
<groupId > org.powermock</groupId>
<artifactId > powermock-module-junit4</artifactId>
<version > ${powermock.version}</version>
<type > jar</type>
<scope > test</scope>
</dependency>
<dependency >
<groupId > org.powermock</groupId>
<artifactId > powermock-api-mockito2</artifactId>
<version > ${powermock.version}</version>
<type > jar</type>
<scope > test</scope>
<exclusions >
<exclusion >
<groupId > org.mockito</groupId>
<artifactId > mockito-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency >
<groupId > mysql</groupId>
<artifactId > mysql-connector-java</artifactId>
<version > ${mysql.connector.version}</version>
<scope > test</scope>
</dependency>
<dependency >
<groupId > org.slf4j</groupId>
<artifactId > slf4j-api</artifactId>
<version > ${slf4j.api.version}</version>
</dependency>
<dependency >
<groupId > org.slf4j</groupId>
<artifactId > slf4j-log4j12</artifactId>
<version > ${slf4j.log4j12.version}</version>
</dependency>
<dependency >
<groupId > commons-collections</groupId>
<artifactId > commons-collections</artifactId>
<version > ${commons.collections.version}</version>
</dependency>
<dependency >
<groupId > commons-lang</groupId>
<artifactId > commons-lang</artifactId>
<version > ${commons.lang.version}</version>
</dependency>
<dependency >
<groupId > org.apache.commons</groupId>
<artifactId > commons-lang3</artifactId>
<version > ${commons.lang3.version}</version>
</dependency>
<dependency >
<groupId > commons-httpclient</groupId>
<artifactId > commons-httpclient</artifactId>
<version > ${commons.httpclient}</version>
</dependency>
<dependency >
<groupId > commons-beanutils</groupId>
<artifactId > commons-beanutils</artifactId>
<version > ${commons.beanutils.version}</version>
</dependency>
<dependency >
<groupId > commons-configuration</groupId>
<artifactId > commons-configuration</artifactId>
<version > ${commons.configuration.version}</version>
</dependency>
<dependency >
<groupId > ch.qos.logback</groupId>
<artifactId > logback-classic</artifactId>
<version > ${logback.version}</version>
</dependency>
<dependency >
<groupId > ch.qos.logback</groupId>
<artifactId > logback-core</artifactId>
<version > ${logback.version}</version>
</dependency>
<dependency >
<groupId > org.apache.commons</groupId>
<artifactId > commons-email</artifactId>
<version > ${commons.email.version}</version>
</dependency>
<!-- excel poi -->
<dependency >
<groupId > org.apache.poi</groupId>
<artifactId > poi</artifactId>
<version > ${poi.version}</version>
</dependency>
<dependency >
<groupId > org.freemarker</groupId>
<artifactId > freemarker</artifactId>
<version > ${freemarker.version}</version>
</dependency>
<!-- hadoop -->
<dependency >
<groupId > org.apache.hadoop</groupId>
<artifactId > hadoop-common</artifactId>
<version > ${hadoop.version}</version>
<exclusions >
<exclusion >
<artifactId > slf4j-log4j12</artifactId>
<groupId > org.slf4j</groupId>
</exclusion>
<exclusion >
<artifactId > com.sun.jersey</artifactId>
<groupId > jersey-json</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency >
<groupId > org.apache.hadoop</groupId>
<artifactId > hadoop-client</artifactId>
<version > ${hadoop.version}</version>
</dependency>
<dependency >
<groupId > org.apache.hadoop</groupId>
<artifactId > hadoop-hdfs</artifactId>
<version > ${hadoop.version}</version>
</dependency>
<dependency >
<groupId > org.apache.hadoop</groupId>
<artifactId > hadoop-yarn-common</artifactId>
<version > ${hadoop.version}</version>
</dependency>
<dependency >
<groupId > org.apache.hadoop</groupId>
<artifactId > hadoop-aws</artifactId>
<version > ${hadoop.version}</version>
</dependency>
<dependency >
<groupId > javax.servlet</groupId>
<artifactId > javax.servlet-api</artifactId>
<version > ${javax.servlet.api.version}</version>
</dependency>
<dependency >
<groupId > org.apache.commons</groupId>
<artifactId > commons-collections4</artifactId>
<version > ${commons.collections4.version}</version>
</dependency>
<dependency >
<groupId > com.google.guava</groupId>
<artifactId > guava</artifactId>
<version > ${guava.version}</version>
</dependency>
<dependency >
<groupId > org.postgresql</groupId>
<artifactId > postgresql</artifactId>
<version > ${postgresql.version}</version>
</dependency>
<dependency >
<groupId > org.apache.hive</groupId>
<artifactId > hive-jdbc</artifactId>
<version > ${hive.jdbc.version}</version>
</dependency>
<dependency >
<groupId > commons-io</groupId>
<artifactId > commons-io</artifactId>
<version > ${commons.io.version}</version>
</dependency>
<dependency >
<groupId > com.github.oshi</groupId>
<artifactId > oshi-core</artifactId>
<version > ${oshi.core.version}</version>
</dependency>
<dependency >
<groupId > ru.yandex.clickhouse</groupId>
<artifactId > clickhouse-jdbc</artifactId>
<version > ${clickhouse.jdbc.version}</version>
</dependency>
<dependency >
<groupId > com.microsoft.sqlserver</groupId>
<artifactId > mssql-jdbc</artifactId>
<version > ${mssql.jdbc.version}</version>
</dependency>
<dependency >
<groupId > net.jcip</groupId>
<artifactId > jcip-annotations</artifactId>
<version > ${jcip.version}</version>
<optional > true</optional>
</dependency>
<dependency >
<groupId > tomcat</groupId>
<artifactId > jasper-runtime</artifactId>
<version > ${jasper-runtime.version}</version>
</dependency>
<dependency >
<groupId > javax.servlet</groupId>
<artifactId > servlet-api</artifactId>
<version > ${servlet-api.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build >
<finalName > apache-dolphinscheduler-incubating-${project.version}</finalName>
<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.apache.maven.plugins</groupId>
<artifactId > maven-compiler-plugin</artifactId>
<configuration >
<source > ${java.version}</source>
<target > ${java.version}</target>
<testSource > ${java.version}</testSource>
<testTarget > ${java.version}</testTarget>
</configuration>
<version > ${maven-compiler-plugin.version}</version>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-surefire-plugin</artifactId>
</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-javadoc-plugin</artifactId>
<version > ${maven-javadoc-plugin.version}</version>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-source-plugin</artifactId>
<version > ${maven-source-plugin.version}</version>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-dependency-plugin</artifactId>
<version > ${maven-dependency-plugin.version}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins >
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-source-plugin</artifactId>
<executions >
<execution >
<id > attach-sources</id>
<phase > verify</phase>
<goals >
<goal > jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-javadoc-plugin</artifactId>
<version > ${maven-javadoc-plugin.version}</version>
<executions >
<execution >
<id > attach-javadocs</id>
<goals >
<goal > jar</goal>
</goals>
</execution>
</executions>
<configuration >
<aggregate > true</aggregate>
<charset > ${project.build.sourceEncoding}</charset>
<encoding > ${project.build.sourceEncoding}</encoding>
<docencoding > ${project.build.sourceEncoding}</docencoding>
</configuration>
</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>
<!-- <goals> - f pom.xml deploy</goals> -->
</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>
<skip > false</skip> <!-- not skip compile test classes -->
</configuration>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-surefire-plugin</artifactId>
<version > ${maven-surefire-plugin.version}</version>
<configuration >
<includes >
<include > **/common/utils/*.java</include>
<include > **/common/threadutils/*.java</include>
<include > **/common/graph/*.java</include>
<include > **/common/queue/*.java</include>
<include > **/api/utils/CheckUtilsTest.java</include>
<include > **/api/utils/FileUtilsTest.java</include>
<include > **/api/enums/*.java</include>
<include > **/api/service/AccessTokenServiceTest.java</include>
<include > **/api/service/QueueServiceTest.java</include>
<include > **/api/service/MonitorServiceTest.java</include>
<include > **/api/service/SessionServiceTest.java</include>
<include > **/api/service/UsersServiceTest.java</include>
<include > **/api/service/TenantServiceTest.java</include>
<include > **/api/service/WorkerGroupServiceTest.java</include>
<include > **/api/service/AlertGroupServiceTest.java</include>
<include > **/api/service/ProjectServiceTest.java</include>
<include > **/api/service/ProcessDefinitionServiceTest.java</include>
<include > **/api/service/UdfFuncServiceTest.java</include>
<include > **/alert/utils/ExcelUtilsTest.java</include>
<include > **/alert/utils/FuncUtilsTest.java</include>
<include > **/alert/utils/JSONUtilsTest.java</include>
<include > **/alert/utils/PropertyUtilsTest.java</include>
<include > **/server/utils/SparkArgsUtilsTest.java</include>
<include > **/server/utils/FlinkArgsUtilsTest.java</include>
<include > **/server/utils/ParamUtilsTest.java</include>
<include > **/dao/mapper/AccessTokenMapperTest.java</include>
<include > **/dao/mapper/AlertGroupMapperTest.java</include>
<include > **/dao/mapper/AlertMapperTest.java</include>
<include > **/dao/mapper/CommandMapperTest.java</include>
</includes>
<!-- <skip>true</skip> -->
</configuration>
</plugin>
<!-- jenkins plugin jacoco report -->
<plugin >
<groupId > org.jacoco</groupId>
<artifactId > jacoco-maven-plugin</artifactId>
<version > ${jacoco.version}</version>
<configuration >
<destFile > target/jacoco.exec</destFile>
<dataFile > target/jacoco.exec</dataFile>
</configuration>
<executions >
<execution >
<id > jacoco-initialize</id>
<goals >
<goal > prepare-agent</goal>
</goals>
</execution>
<execution >
<id > jacoco-site</id>
<phase > test</phase>
<goals >
<goal > report</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin >
<groupId > org.apache.rat</groupId>
<artifactId > apache-rat-plugin</artifactId>
<version > ${apache.rat.version}</version>
<configuration >
<includes >
<include > **/*.java</include>
<include > **/dolphinscheduler-ui/src/**/*.scss</include>
<include > **/dolphinscheduler-ui/src/**/*.css</include>
<include > **/dolphinscheduler-ui/src/**/*.vue</include>
<include > **/dolphinscheduler-ui/src/**/*.js</include>
<include > **/dolphinscheduler-ui/src/**/*.html</include>
</includes>
<excludes >
<exclude > **/dolphinscheduler-ui/src/lib/**</exclude>
<exclude > **/dolphinscheduler-ui/src/js/module/util/cookie.js</exclude>
<exclude > **/dolphinscheduler-ui/src/font/awesome/font-awesome.css</exclude>
<exclude > **/dolphinscheduler-ui/src/sass/common/_animation.scss</exclude>
<exclude > **/dolphinscheduler-ui/src/sass/common/_normalize.scss</exclude>
<exclude > **/dolphinscheduler-ui/src/combo/1.0.0/es5.js</exclude>
<exclude > **/dolphinscheduler-ui/src/combo/1.0.0/base.css</exclude>
<exclude > **/dolphinscheduler-ui/src/view/common/outro.inc</exclude>
<exclude > **/dolphinscheduler-ui/src/view/common/meta.inc</exclude>
<exclude > **/dolphinscheduler-ui/src/combo/1.0.0/3rd.css</exclude>
<exclude > **/dolphinscheduler-rpc/src/main/java/org/apache/dolphinscheduler/rpc/LogViewServiceGrpc.java</exclude>
</excludes>
<consoleOutput > true</consoleOutput>
</configuration>
</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 > org.apache.maven.plugins</groupId>
<artifactId > maven-checkstyle-plugin</artifactId>
<version > ${checkstyle.version}</version>
<dependencies >
<dependency >
<groupId > com.puppycrawl.tools</groupId>
<artifactId > checkstyle</artifactId>
<version > 8.18</version>
</dependency>
</dependencies>
<configuration >
<consoleOutput > true</consoleOutput>
<encoding > UTF-8</encoding>
<configLocation > style/checkstyle.xml</configLocation>
<suppressionsLocation > style/checkstyle-suppressions.xml</suppressionsLocation>
<suppressionsFileExpression > checkstyle.suppressions.file</suppressionsFileExpression>
<failOnViolation > true</failOnViolation>
<violationSeverity > warning</violationSeverity>
<includeTestSourceDirectory > true</includeTestSourceDirectory>
<sourceDirectories >
<sourceDirectory > ${project.build.sourceDirectory}</sourceDirectory>
</sourceDirectories>
<excludes > **\/generated-sources\/</excludes>
<skip > true</skip>
</configuration>
<executions >
<execution >
<phase > compile</phase>
<goals >
<goal > check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin >
<groupId > org.codehaus.mojo</groupId>
<artifactId > cobertura-maven-plugin</artifactId>
<version > ${cobertura-maven-plugin.version}</version>
<configuration >
<check >
</check>
<aggregate > true</aggregate>
<outputDirectory > ./target/cobertura</outputDirectory>
<encoding > ${project.build.sourceEncoding}</encoding>
<quiet > true</quiet>
<format > xml</format>
<instrumentation >
<ignoreTrivial > true</ignoreTrivial>
<ignoreMethodAnnotations >
<ignoreMethodAnnotation > lombok.Generated</ignoreMethodAnnotation>
</ignoreMethodAnnotations>
<excludes >
</excludes>
</instrumentation>
</configuration>
</plugin>
</plugins>
</build>
<modules >
<module > dolphinscheduler-ui</module>
<module > dolphinscheduler-server</module>
<module > dolphinscheduler-common</module>
<module > dolphinscheduler-api</module>
<module > dolphinscheduler-dao</module>
<module > dolphinscheduler-alert</module>
<module > dolphinscheduler-rpc</module>
<module > dolphinscheduler-dist</module>
</modules>
</project>