blob: bac9b628fcbd71fd64d72ac72fe0d014c610e65c [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2015 BSI Business Systems Integration AG.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
Contributors:
BSI Business Systems Integration AG - initial API and implementation
-->
<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.eclipse.scout</groupId>
<artifactId>maven_plugin_version-master</artifactId>
<version>3.12.6-SNAPSHOT</version>
<relativePath>../maven_plugin_version-master</relativePath>
</parent>
<artifactId>maven_plugin_config-master</artifactId>
<packaging>pom</packaging>
<name>Maven Master Plugin Build Configuration - General</name>
<properties>
<jdk.min.version>1.8</jdk.min.version>
<jdk.source.version>1.8</jdk.source.version>
<maven.compiler.source>${jdk.source.version}</maven.compiler.source>
<maven.compiler.target>${jdk.source.version}</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.build.timestamp.format>yyyyMMdd-HHmmss</maven.build.timestamp.format>
<maven.min.version>3.5.3</maven.min.version>
<maven.api.version>3.5.3</maven.api.version>
<master_deployAtEnd>true</master_deployAtEnd>
<master_sanityCheck_skip>false</master_sanityCheck_skip>
<master_signatureCheck_skip>${master_sanityCheck_skip}</master_signatureCheck_skip>
<master_enforcerCheck_skip>${master_sanityCheck_skip}</master_enforcerCheck_skip>
<!-- Test Control -->
<master_unitTest_skip>false</master_unitTest_skip>
<master_unitTest_failureIgnore>true</master_unitTest_failureIgnore>
<master_webTest_skip>false</master_webTest_skip>
<master_coverage_skip>false</master_coverage_skip>
<!-- Git Information Control -->
<master_git-id_skip>false</master_git-id_skip>
<master_git-id_failNoGit>false</master_git-id_failNoGit>
<master_git-id_useNative>false</master_git-id_useNative>
<!-- Surefire/Failsafe Fork/Order/Config Control -->
<master_coverage_jacoco_destFile>${basedir}/../target/jacoco-all.exec</master_coverage_jacoco_destFile>
<!-- https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#runOrder -->
<master_test_runOrder>hourly</master_test_runOrder>
<master_test_forkCount>0.5C</master_test_forkCount>
<master_test_reuseVm>true</master_test_reuseVm>
<master_test_timeout>300</master_test_timeout>
<master_test_jvmMemory>-Xms512m -Xmx2048m</master_test_jvmMemory>
<master_test_remoteDebugPort>8000</master_test_remoteDebugPort>
<master_test_debugArgLine>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:${master_test_remoteDebugPort}</master_test_debugArgLine>
<master_test_argLine>${master_test_jacocoArgLine} ${master_test_jvmMemory}
-Dfile.encoding=${project.build.sourceEncoding}</master_test_argLine>
<!-- Javadoc Control -->
<master_javadoc_opts></master_javadoc_opts>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<!--
The delimiter will be used if subprojects set the <filtering> tag to true.
It specifies the form for properties to be replaced.
-->
<delimiters>
<delimiter>${*}</delimiter>
</delimiters>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>ico</nonFilteredFileExtension>
<nonFilteredFileExtension>png</nonFilteredFileExtension>
<nonFilteredFileExtension>tif</nonFilteredFileExtension>
<nonFilteredFileExtension>tiff</nonFilteredFileExtension>
<nonFilteredFileExtension>jpg</nonFilteredFileExtension>
<nonFilteredFileExtension>jpeg</nonFilteredFileExtension>
<nonFilteredFileExtension>pdf</nonFilteredFileExtension>
<nonFilteredFileExtension>jar</nonFilteredFileExtension>
<!-- office documents -->
<nonFilteredFileExtension>doc</nonFilteredFileExtension>
<nonFilteredFileExtension>docx</nonFilteredFileExtension>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
<!-- font files -->
<nonFilteredFileExtension>woff</nonFilteredFileExtension>
<nonFilteredFileExtension>woff2</nonFilteredFileExtension>
<nonFilteredFileExtension>otf</nonFilteredFileExtension>
<nonFilteredFileExtension>ttf</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerId>jdt</compilerId>
<source>${jdk.source.version}</source>
<target>${jdk.source.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
<showWarnings>true</showWarnings>
<compilerArgs>
<arg>-proc:none</arg>
</compilerArgs>
</configuration>
<dependencies>
<dependency>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-jdt</artifactId>
<version>${master_dependency_tycho-compiler_version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<failIfNoTests>false</failIfNoTests>
<testFailureIgnore>${master_unitTest_failureIgnore}</testFailureIgnore>
<skipTests>${master_unitTest_skip}</skipTests>
<trimStackTrace>false</trimStackTrace>
<!-- inject debug arguments (triggered by system property debugTests from jenkins) -->
<argLine>${master_test_argLine}</argLine>
<systemPropertyVariables>
<sun.jnu.encoding>${project.build.sourceEncoding}</sun.jnu.encoding>
<java.awt.headless>true</java.awt.headless>
<java.util.logging.SimpleFormatter.format>%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %5$s%6$s%n</java.util.logging.SimpleFormatter.format>
<!-- Inherit proxy settings of parent process when forking -->
<http.proxyHost>${http.proxyHost}</http.proxyHost>
<http.proxyPort>${http.proxyPort}</http.proxyPort>
<http.nonProxyHosts>${http.nonProxyHosts}</http.nonProxyHosts>
<https.proxyHost>${https.proxyHost}</https.proxyHost>
<https.proxyPort>${https.proxyPort}</https.proxyPort>
<ftp.proxyHost>${ftp.proxyHost}</ftp.proxyHost>
<ftp.proxyPort>${ftp.proxyPort}</ftp.proxyPort>
<ftp.nonProxyHosts>${ftp.nonProxyHosts}</ftp.nonProxyHosts>
</systemPropertyVariables>
<runOrder>${master_test_runOrder}</runOrder>
<forkCount>${master_test_forkCount}</forkCount>
<reuseForks>${master_test_reuseVm}</reuseForks>
<forkedProcessTimeoutInSeconds>${master_test_timeout}</forkedProcessTimeoutInSeconds>
<useManifestOnlyJar>false</useManifestOnlyJar>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<failIfNoTests>false</failIfNoTests>
<testFailureIgnore>${master_unitTest_failureIgnore}</testFailureIgnore>
<skipTests>${master_unitTest_skip}</skipTests>
<!-- inject debug arguments (triggered by system property debugTests from jenkins) -->
<argLine>${master_test_argLine}</argLine>
<systemPropertyVariables>
<sun.jnu.encoding>${project.build.sourceEncoding}</sun.jnu.encoding>
<java.awt.headless>true</java.awt.headless>
<java.util.logging.SimpleFormatter.format>%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %5$s%6$s%n</java.util.logging.SimpleFormatter.format>
</systemPropertyVariables>
<runOrder>${master_test_runOrder}</runOrder>
<!-- failsafe must be forked into its own process in order to enable jacoco's java agent -->
<forkCount>${master_test_forkCount}</forkCount>
<reuseForks>${master_test_reuseVm}</reuseForks>
<forkedProcessTimeoutInSeconds>${master_test_timeout}</forkedProcessTimeoutInSeconds>
<useManifestOnlyJar>false</useManifestOnlyJar>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<configuration>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<deployAtEnd>${master_deployAtEnd}</deployAtEnd>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<tagNameFormat>${master_release_tagName}</tagNameFormat>
<addSchema>true</addSchema>
<detail>true</detail>
<indentSize>2</indentSize>
<localCheckout>true</localCheckout>
<pushChanges>${master_release_pushChanges}</pushChanges>
<arguments>${arguments} --batch-mode -Drelease-build</arguments>
<useReleaseProfile>false</useReleaseProfile>
<goals>install</goals>
</configuration>
</plugin>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<executions>
<execution>
<id>default</id>
<goals>
<goal>revision</goal>
</goals>
<phase>initialize</phase>
<configuration>
<dateFormat>yyyy-MM-dd'T'HH:mm:ssZZ</dateFormat>
<generateGitPropertiesFile>false</generateGitPropertiesFile>
<skipPoms>true</skipPoms>
<failOnNoGitDirectory>${master_git-id_failNoGit}</failOnNoGitDirectory>
<skip>${master_git-id_skip}</skip>
<useNativeGit>${master_git-id_useNative}</useNativeGit>
<abbrevLength>10</abbrevLength>
<gitDescribe>
<always>true</always>
<abbrev>7</abbrev>
<dirty>-dirty</dirty>
<forceLongFormat>false</forceLongFormat>
<tags>true</tags>
</gitDescribe>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addClasspath>false</addClasspath>
</manifest>
<manifestSections combine.children="append">
<manifestSection>
<name>${project.groupId}:${project.artifactId}</name>
<manifestEntries>
<!-- This is actually the time when the build was done -->
<Build-Time>${git.build.time}</Build-Time>
<!-- Git specific properties -->
<Git-Branch>${git.branch}</Git-Branch>
<Git-Commit-Id>${git.commit.id}</Git-Commit-Id>
<Git-Commit-Id-Describe>${git.commit.id.describe}</Git-Commit-Id-Describe>
<Git-Remote-Origin-Url>${git.remote.origin.url}</Git-Remote-Origin-Url>
<!-- project information -->
<Project-ArtifactId>${project.artifactId}</Project-ArtifactId>
<Project-GroupId>${project.groupId}</Project-GroupId>
<Project-Name>${project.name}</Project-Name>
<Project-Version>${project.version}</Project-Version>
</manifestEntries>
</manifestSection>
</manifestSections>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>jar</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
<plugin>
<groupId>org.basepom.maven</groupId>
<artifactId>duplicate-finder-maven-plugin</artifactId>
<configuration>
<skip>${master_sanityCheck_skip}</skip>
<printEqualFiles>false</printEqualFiles>
<failBuildInCaseOfConflict>true</failBuildInCaseOfConflict>
<failBuildInCaseOfDifferentContentConflict>true</failBuildInCaseOfDifferentContentConflict>
<failBuildInCaseOfEqualContentConflict>true</failBuildInCaseOfEqualContentConflict>
<checkCompileClasspath>true</checkCompileClasspath>
<checkRuntimeClasspath>true</checkRuntimeClasspath>
<checkTestClasspath>true</checkTestClasspath>
<quiet>false</quiet>
<preferLocal>true</preferLocal>
<useResultFile>false</useResultFile>
<includePomProjects>true</includePomProjects>
<ignoredResourcePatterns>
<ignoredResourcePattern>.*ico$</ignoredResourcePattern>
<ignoredResourcePattern>.*jpg$</ignoredResourcePattern>
<ignoredResourcePattern>.*jpeg$</ignoredResourcePattern>
<ignoredResourcePattern>.*png$</ignoredResourcePattern>
<ignoredResourcePattern>.*gif$</ignoredResourcePattern>
<ignoredResourcePattern>.*html$</ignoredResourcePattern>
<ignoredResourcePattern>.*htm$</ignoredResourcePattern>
<ignoredResourcePattern>.*xml$</ignoredResourcePattern>
<ignoredResourcePattern>.*txt$</ignoredResourcePattern>
<ignoredResourcePattern>.*.api_description$</ignoredResourcePattern>
<ignoredResourcePattern>.*options$</ignoredResourcePattern>
<ignoredResourcePattern>.*properties$</ignoredResourcePattern>
<ignoredResourcePattern>.*gitkeep$</ignoredResourcePattern>
<ignoredResourcePattern>.*sql$</ignoredResourcePattern>
<ignoredResourcePattern>.*xjb$</ignoredResourcePattern>
<ignoredResourcePattern>.*exsd$</ignoredResourcePattern>
<ignoredResourcePattern>.*about.ini$</ignoredResourcePattern>
<ignoredResourcePattern>.*file-list$</ignoredResourcePattern>
</ignoredResourcePatterns>
<ignoredClassPatterns>
<ignoredClassPattern>.*module-info.*</ignoredClassPattern>
</ignoredClassPatterns>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<configuration>
<skip>${master_coverage_skip}</skip>
<destFile>${master_coverage_jacoco_destFile}</destFile>
<propertyName>master_test_jacocoArgLine</propertyName>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
<configuration>
<signature>
<groupId>org.codehaus.mojo.signature</groupId>
<artifactId>java18</artifactId>
<version>1.0</version>
</signature>
<skip>${master_signatureCheck_skip}</skip>
</configuration>
</plugin>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<configuration>
<header>${project.basedir}/../license_files/copyright.txt</header>
<headerDefinitions>
<headerDefinition>${project.basedir}/../license_files/scoutLicenceHeaderJava.xml</headerDefinition>
</headerDefinitions>
<failIfMissing>true</failIfMissing>
<strictCheck>true</strictCheck>
<aggregate>true</aggregate>
<useDefaultExcludes>false</useDefaultExcludes>
<includes>
<include>**/pom.xml</include>
<include>**/*.properties</include>
<include>**/*.java</include>
<include>**/*.js</include>
<include>**/*.css</include>
<include>**/*.less</include>
<include>**/*.xml</include>
<include>**/*.xsd</include>
</includes>
<excludes>
<exclude>**/target/**</exclude>
<exclude>**/node_modules/**</exclude>
<exclude>**/test-results/**</exclude>
<exclude>**/dist/**</exclude>
<exclude>**/.*</exclude>
<exclude>**/.settings/**</exclude>
<exclude>**/release.properties</exclude>
<exclude>**/pom.xml.releaseBackup</exclude>
<exclude>**/*.sh</exclude>
<exclude>**/src/main/resources/WebContent/**</exclude>
<exclude>**/src/main/ws-stub/**</exclude>
</excludes>
<mapping>
<java>SCOUT_JAVADOC_STYLE</java>
<js>SCOUT_JAVADOC_STYLE</js>
<less>SCOUT_JAVADOC_STYLE</less>
<css>SCOUT_JAVADOC_STYLE</css>
</mapping>
<skip>${master_sanityCheck_skip}</skip>
</configuration>
<dependencies>
<dependency>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin-git</artifactId>
<!-- make sure you use the same version as license-maven-plugin -->
<version>${master_plugin_license_version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<configuration>
<skip>${master_enforcerCheck_skip}</skip>
<rules>
<requirePluginVersions>
<message>Build reproducibility : always define plugin versions</message>
<banLatest>true</banLatest>
<banRelease>true</banRelease>
<phases>clean,deploy</phases>
<unCheckedPluginList>org.apache.maven.plugins:maven-deploy-plugin</unCheckedPluginList>
</requirePluginVersions>
<requireReleaseDeps>
<message>No SNAPSHOT versions allowed for dependencies</message>
<onlyWhenRelease>true</onlyWhenRelease>
</requireReleaseDeps>
<requireJavaVersion>
<message>To build this project JDK ${jdk.min.version} (or upper) is required. Please install it.</message>
<version>${jdk.min.version}</version>
</requireJavaVersion>
<requireMavenVersion>
<message>To build this project Maven ${maven.min.version} (or upper) is required. Please install it.</message>
<version>${maven.min.version}</version>
</requireMavenVersion>
<bannedDependencies>
<message>commons-beanutils:commons-beanutils should be used instead</message>
<excludes>
<exclude>commons-beanutils:commons-beanutils-core</exclude>
</excludes>
<searchTransitive>true</searchTransitive>
</bannedDependencies>
<banDuplicatePomDependencyVersions></banDuplicatePomDependencyVersions>
<!-- can't be used until html ui in eclipse repo and of the tools-build
<reactorModuleConvergence /> -->
<requireSameVersions>
<dependencies>
<dependency>org.eclipse.scout</dependency>
<dependency>org.eclipse.scout.rt</dependency>
</dependencies>
</requireSameVersions>
<requireSameVersions>
<dependencies>
<dependency>org.eclipse.jetty</dependency>
</dependencies>
</requireSameVersions>
</rules>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.scout</groupId>
<artifactId>eclipse-settings-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.eclipse.scout</groupId>
<artifactId>eclipse-settings_master</artifactId>
<version>${master_dependency_eclipseSettings_master_version}</version>
</dependency>
</dependencies>
<configuration>
<additionalConfig>
<file>
<name>.settings/.jsdtscope</name>
<location>/.jsdtscope</location>
</file>
<file>
<name>.settings/com.eclipsesource.jshint.ui.prefs</name>
<location>/com.eclipsesource.jshint.ui.prefs</location>
</file>
<file>
<name>.settings/de.loskutov.anyedit.AnyEditTools.prefs</name>
<location>/de.loskutov.anyedit.AnyEditTools.prefs</location>
</file>
<file>
<name>.settings/org.eclipse.core.resources.prefs</name>
<location>/org.eclipse.core.resources.prefs</location>
</file>
<file>
<name>.settings/org.eclipse.core.runtime.prefs</name>
<location>/org.eclipse.core.runtime.prefs</location>
</file>
<file>
<name>.settings/org.eclipse.jdt.core.prefs</name>
<location>/org.eclipse.jdt.core.prefs</location>
</file>
<file>
<name>.settings/org.eclipse.jdt.launching.prefs</name>
<location>/org.eclipse.jdt.launching.prefs</location>
</file>
<file>
<name>.settings/org.eclipse.jdt.ui.prefs</name>
<location>/org.eclipse.jdt.ui.prefs</location>
</file>
<file>
<name>.settings/org.eclipse.m2e.core.prefs</name>
<location>/org.eclipse.m2e.core.prefs</location>
</file>
<file>
<name>.settings/org.eclipse.wst.html.core.prefs</name>
<location>/org.eclipse.wst.html.core.prefs</location>
</file>
<file>
<name>.settings/org.eclipse.wst.jsdt.core.prefs</name>
<location>/org.eclipse.wst.jsdt.core.prefs</location>
</file>
<file>
<name>.settings/org.eclipse.wst.jsdt.ui.prefs</name>
<location>/org.eclipse.wst.jsdt.ui.prefs</location>
</file>
<file>
<name>.settings/org.eclipse.wst.jsdt.ui.superType.container</name>
<location>/org.eclipse.wst.jsdt.ui.superType.container</location>
</file>
<file>
<name>.settings/org.eclipse.wst.jsdt.ui.superType.name</name>
<location>/org.eclipse.wst.jsdt.ui.superType.name</location>
</file>
<file>
<name>.settings/org.eclipse.wst.validation.prefs</name>
<location>/org.eclipse.wst.validation.prefs</location>
</file>
<file>
<name>.settings/org.eclipse.wst.xml.core.prefs</name>
<location>/org.eclipse.wst.xml.core.prefs</location>
</file>
</additionalConfig>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<failOnError>false</failOnError>
<source>${jdk.source.version}</source>
<encoding>${project.build.sourceEncoding}</encoding>
<additionalOptions>${master_javadoc_opts}</additionalOptions>
<doclint>none</doclint>
</configuration>
</plugin>
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<versionRange>[${master_plugin_flatten_version},)</versionRange>
<goals>
<goal>flatten</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<versionRange>[${master_plugin_git-commit-id_version},)</versionRange>
<goals>
<goal>revision</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<!-- Always build a jar with the test classes -->
<execution>
<id>attach-tests</id>
<goals>
<goal>test-jar</goal>
</goals>
<phase>package</phase>
<configuration>
<skipIfEmpty>true</skipIfEmpty>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.basepom.maven</groupId>
<artifactId>duplicate-finder-maven-plugin</artifactId>
<executions>
<execution>
<id>default</id>
<goals>
<goal>check</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-rules</id>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>default</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<phase>initialize</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
<execution>
<id>attach-test-sources</id>
<goals>
<goal>test-jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<!--
run security check on all dependencies using owasp dependency check
https://jeremylong.github.io/DependencyCheck/dependency-check-maven/
https://jeremylong.github.io/DependencyCheck/dependency-check-cli/arguments.html
https://jeremylong.github.io/DependencyCheck/general/internals.html
-->
<id>security.check</id>
<activation>
<property>
<name>securityCheck</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<configuration>
<formats>
<format>html</format>
<format>xml</format>
</formats>
<skipTestScope>true</skipTestScope>
</configuration>
<executions>
<execution>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- disable all tests -->
<id>skipTests</id>
<activation>
<property>
<name>skipTests</name>
</property>
</activation>
<properties>
<master_unitTest_skip>true</master_unitTest_skip>
<master_webTest_skip>true</master_webTest_skip>
<master_coverage_skip>true</master_coverage_skip>
</properties>
</profile>
<profile>
<!-- skip checks for faster development-build -->
<id>dev</id>
<properties>
<master_sanityCheck_skip>true</master_sanityCheck_skip>
<master_coverage_skip>true</master_coverage_skip>
</properties>
</profile>
<profile>
<!-- remote debug tests -->
<id>debug</id>
<activation>
<property>
<name>debugTests</name>
</property>
</activation>
<properties>
<master_test_argLine>${master_test_jacocoArgLine} ${master_test_jvmMemory} ${master_test_debugArgLine}
-Dfile.encoding=${project.build.sourceEncoding}</master_test_argLine>
<master_test_forkCount>1</master_test_forkCount>
</properties>
</profile>
<profile>
<!-- check copyright/license headers -->
<id>license_check</id>
<activation>
<property>
<name>license_check</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<inherited>false</inherited>
<executions>
<execution>
<id>enforce-license-headers</id>
<goals>
<goal>check</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- make a release build. includes javadoc... -->
<id>release</id>
<activation>
<property>
<name>release-build</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- Add the jdt.core.prefs compiler argument only if the file exists -->
<id>use-jdt-core-prefs-file</id>
<activation>
<file>
<exists>${basedir}/.settings/org.eclipse.jdt.core.prefs</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArguments>
<properties>${project.basedir}/.settings/org.eclipse.jdt.core.prefs</properties>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>enforce-java-api-compatibility-profile</id>
<activation>
<jdk>1.8</jdk>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
<executions>
<execution>
<id>enforce-java-api-compatibility</id>
<goals>
<goal>check</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>