<?xml version="1.0" encoding="UTF-8"?>
<!--

       Copyright (c) 2020 CK.

       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>
    <groupId>com.github.fartherp</groupId>
    <artifactId>fartherp-parent</artifactId>
	<version>1</version>
	<packaging>pom</packaging>

    <name>fartherp-parent</name>
	<description>The fartherp parent POM.</description>
    <url>https://github.com/fartherp/parent</url>
	<organization>
		<name>CK</name>
		<url>https://github.com/fartherp</url>
	</organization>
	<licenses>
		<license>
			<name>The Apache Software License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<developers>
		<developer>
			<id>ck</id>
			<name>ck</name>
			<email>214722930@qq.com</email>
		</developer>
	</developers>

	<scm>
		<url>https://github.com/fartherp/parent</url>
		<connection>scm:git:git@github.com:fartherp/parent.git</connection>
		<developerConnection>scm:git:git@github.com:fartherp/parent.git</developerConnection>
		<tag>fartherp-parent-1</tag>
	</scm>

	<issueManagement>
		<system>GitHub Issue Management</system>
		<url>https://github.com/fartherp/parent/issues</url>
	</issueManagement>
	<ciManagement>
		<system>Travis CI</system>
		<url>https://travis-ci.org/fartherp/parent</url>
	</ciManagement>
	<distributionManagement>
		<repository>
			<id>oss</id>
			<name>Nexus Release Repository</name>
			<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
		</repository>
		<snapshotRepository>
			<id>oss</id>
			<name>Nexus Snapshot Repository</name>
			<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
		</snapshotRepository>
	</distributionManagement>

    <properties>
		<!--
		 | General configuration
		-->
		<checkstyle.config>checkstyle.xml</checkstyle.config>
		<clirr.comparisonVersion>3.4.6</clirr.comparisonVersion>
		<formatter.config>eclipse-formatter-config-2space.xml</formatter.config>
		<gcu.product>${project.name}</gcu.product>
		<maven.min-version>3.2.5</maven.min-version>
		<module.name>com.github.fartherp</module.name>
		<spotbugs.onlyAnalyze>${project.groupId}.*</spotbugs.onlyAnalyze>

		<!--
		 | Maven confirmation
		-->
		<maven.build.timestamp.format>yyyy-MM-dd HH:mm:ssZ</maven.build.timestamp.format>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
		<maven.compiler.testTarget>1.8</maven.compiler.testTarget>
		<maven.compiler.testSource>1.8</maven.compiler.testSource>
		<maven.compiler.testCompilerArgument>-parameters</maven.compiler.testCompilerArgument>
        <encoding.charset>UTF-8</encoding.charset>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

		<!--
		 | Dependency versions
		-->
		<base-bundle.version>1</base-bundle.version>
		<fluido.version>1.7</fluido.version>
		<wagon-git.version>2.0.3</wagon-git.version> <!-- Do not upgrade to 2.0.4 as it does not work with ssh properly -->
		<wagon-ssh.version>3.3.1</wagon-ssh.version>

		<!--
		 | Plugins versions
		-->
		<assembly.version>3.1.1</assembly.version>
		<bundle.version>4.1.0</bundle.version>
		<changes.version>2.12.1</changes.version>
		<checkstyle.plugin>3.1.0</checkstyle.plugin>
		<clean.version>3.1.0</clean.version>
		<clirr.version>2.8</clirr.version>
		<compiler.version>3.8.0</compiler.version>
		<coveralls.version>4.3.0</coveralls.version>
		<dependency.version>3.1.1</dependency.version>
		<deploy.version>3.0.0-M1</deploy.version>
		<enforcer.version>3.0.0-M1</enforcer.version>
		<gpg.version>1.6</gpg.version>
		<install.version>3.0.0-M1</install.version>
		<jacoco.version>0.8.5</jacoco.version>
		<jar.version>3.1.1</jar.version>
		<javadoc.version>3.0.1</javadoc.version>
		<jxr.version>3.0.0</jxr.version>
		<license.version>3.0</license.version>
		<modernizer.plugin>1.7.1</modernizer.plugin>
		<p3c.version>2.0.0</p3c.version>
		<pdf.version>1.4</pdf.version>
		<pmd.version>3.11.0</pmd.version>
		<project-info.version>3.0.0</project-info.version>
		<release.version>2.5.3</release.version>
		<resource.version>3.1.0</resource.version>
		<scm.version>1.11.1</scm.version>
		<shade.version>3.2.1</shade.version>
		<site.version>3.7.1</site.version>
		<source.version>3.0.1</source.version>
		<spotbugs.version>3.1.10</spotbugs.version>
		<surefire.version>3.0.0-M3</surefire.version>
		<taglist.version>2.4</taglist.version>
		<versions.version>2.7</versions.version>

		<!--
		 | OSGi configuration properties
		-->
		<osgi.symbolicName>${project.groupId}.${project.artifactId}</osgi.symbolicName>
		<osgi.export>${project.groupId}.*;version=${project.version};-noimport:=true</osgi.export>
		<osgi.import>*</osgi.import>
		<osgi.dynamicImport />
		<osgi.private />
    </properties>

    <build>
        <pluginManagement>
            <plugins>
				<plugin>
					<groupId>com.mycila</groupId>
					<artifactId>license-maven-plugin</artifactId>
					<version>${license.version}</version>
					<configuration>
						<header>${project.basedir}/license.txt</header>
						<failIfMissing>true</failIfMissing>
						<excludes>
							<exclude>**/*maven-wrapper.properties</exclude>
							<exclude>**/*MavenWrapperDownloader.java</exclude>
							<exclude>.gitattributes</exclude>
							<exclude>mvnw</exclude>
							<exclude>mvnw.cmd</exclude>
							<exclude>LICENSE</exclude>
							<exclude>NOTICE</exclude>
						</excludes>
						<mapping>
							<java>JAVADOC_STYLE</java>
						</mapping>
						<encoding>${encoding.charset}</encoding>
					</configuration>
					<executions>
						<execution>
							<phase>compile</phase>
							<goals>
								<goal>check</goal>
							</goals>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-assembly-plugin</artifactId>
					<version>${assembly.version}</version>
				</plugin>

				<!-- clean -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-clean-plugin</artifactId>
					<version>${clean.version}</version>
				</plugin>

				<!-- compiler -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>${compiler.version}</version>
					<configuration>
						<optimize>true</optimize>
						<!-- Slightly faster builds, see https://issues.apache.org/jira/browse/MCOMPILER-209 -->
						<useIncrementalCompilation>false</useIncrementalCompilation>
						<testCompilerArgument>${maven.compiler.testCompilerArgument}</testCompilerArgument>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.eluder.coveralls</groupId>
					<artifactId>coveralls-maven-plugin</artifactId>
					<version>${coveralls.version}</version>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-dependency-plugin</artifactId>
					<version>${dependency.version}</version>
				</plugin>

				<!-- deploy -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>${deploy.version}</version>
				</plugin>

				<!-- install -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-install-plugin</artifactId>
					<version>${install.version}</version>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>${javadoc.version}</version>
					<configuration>
						<quiet>true</quiet>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-pdf-plugin</artifactId>
					<version>${pdf.version}</version>
					<executions>
						<execution>
							<id>pdf</id>
							<phase>prepare-package</phase>
							<goals>
								<goal>pdf</goal>
							</goals>
							<configuration>
								<includeReports>false</includeReports>
							</configuration>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-release-plugin</artifactId>
					<version>${release.version}</version>
					<configuration>
						<autoVersionSubmodules>true</autoVersionSubmodules>
						<mavenExecutorId>forked-path</mavenExecutorId>
						<useReleaseProfile>false</useReleaseProfile>
						<releaseProfiles>release</releaseProfiles>
						<goals>deploy</goals>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>${resource.version}</version>
					<configuration>
						<encoding>${encoding.charset}</encoding>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-shade-plugin</artifactId>
					<version>${shade.version}</version>
				</plugin>

				<!-- site -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>${site.version}</version>
					<executions>
						<execution>
							<id>attach-descriptor</id>
							<goals>
								<goal>attach-descriptor</goal>
							</goals>
						</execution>
					</executions>
					<dependencies>
						<dependency>
							<groupId>net.trajano.wagon</groupId>
							<artifactId>wagon-git</artifactId>
							<version>${wagon-git.version}</version>
						</dependency>
						<dependency>
							<groupId>org.apache.maven.wagon</groupId>
							<artifactId>wagon-ssh</artifactId>
							<version>${wagon-ssh.version}</version>
						</dependency>
						<!-- Additional entries for version site tracking only -->
						<dependency>
							<groupId>org.apache.maven.skins</groupId>
							<artifactId>maven-fluido-skin</artifactId>
							<version>${fluido.version}</version>
						</dependency>
					</dependencies>
				</plugin>

				<!-- test -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>${surefire.version}</version>
					<configuration>
						<!-- In case of jmockit usage with jdk9 -Djdk.attach.allowAttachSelf -->
						<!-- In case of test usage with jdk13 -Xmx2048m -->
						<argLine>${argLine} -Xmx2048m -Djdk.attach.allowAttachSelf</argLine>
						<systemProperties>
							<property>
								<name>derby.stream.error.file</name>
								<value>${project.build.directory}/derby.log</value>
							</property>
							<property>
								<name>derby.system.home</name>
								<value>${project.build.directory}</value>
							</property>
						</systemProperties>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.jacoco</groupId>
					<artifactId>jacoco-maven-plugin</artifactId>
					<version>${jacoco.version}</version>
				</plugin>


				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>versions-maven-plugin</artifactId>
					<version>${versions.version}</version>
				</plugin>

				<plugin>
					<groupId>org.gaul</groupId>
					<artifactId>modernizer-maven-plugin</artifactId>
					<version>${modernizer.plugin}</version>
					<configuration>
						<failOnViolations>false</failOnViolations>
						<javaVersion>${maven.compiler.target}</javaVersion>
					</configuration>
					<executions>
						<execution>
							<id>modernizer</id>
							<phase>verify</phase>
							<goals>
								<goal>modernizer</goal>
							</goals>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-checkstyle-plugin</artifactId>
					<version>${checkstyle.plugin}</version>
					<configuration>
						<configLocation>${checkstyle.config}</configLocation>
					</configuration>
				</plugin>
            </plugins>
        </pluginManagement>

		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>com.mycila</groupId>
				<artifactId>license-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<configuration>
					<consoleOutput>true</consoleOutput>
					<enableRSS>false</enableRSS>
					<propertyExpansion>checkstyle.config.path=${basedir}</propertyExpansion>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>com.puppycrawl.tools</groupId>
						<artifactId>checkstyle</artifactId>
						<version>[8.18,)</version>
					</dependency>
				</dependencies>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
				<version>${enforcer.version}</version>
				<executions>
					<execution>
						<id>enforce-java</id>
						<phase>validate</phase>
						<goals>
							<goal>enforce</goal>
						</goals>
						<configuration>
							<rules>
								<requireJavaVersion>
									<version>[${maven.compiler.source},)</version>
								</requireJavaVersion>
								<requireMavenVersion>
									<version>[${maven.min-version},)</version>
								</requireMavenVersion>
								<requirePluginVersions>
									<message>[ERROR] Best Practice is to always define plugin versions!</message>
									<banLatest>true</banLatest>
									<banRelease>true</banRelease>
									<banSnapshots>true</banSnapshots>
									<phases>clean,deploy,site</phases>
								</requirePluginVersions>
							</rules>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.felix</groupId>
				<artifactId>maven-bundle-plugin</artifactId>
				<version>${bundle.version}</version>
				<executions>
					<execution>
						<id>bundle-manifest</id>
						<phase>process-classes</phase>
						<goals>
							<goal>manifest</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<excludeDependencies>true</excludeDependencies>
					<manifestLocation>${project.build.directory}/osgi</manifestLocation>
					<supportedProjectTypes>
						<supportedProjectType>jar</supportedProjectType>
						<supportedProjectType>bundle</supportedProjectType>
						<supportedProjectType>war</supportedProjectType>
						<supportedProjectType>maven-plugin</supportedProjectType>
					</supportedProjectTypes>
					<instructions>
						<!--
                         | stops the "uses" clauses being added to "Export-Package" manifest entry
                        -->
						<_nouses>true</_nouses>
						<!--
                         | Stop the JAVA_1_n_HOME variables from being treated as headers by Bnd (Review these, added 7, 8, and 9 to match -->
						--&gt;
						<_removeheaders>JAVA_1_3_HOME,JAVA_1_4_HOME,JAVA_1_5_HOME,JAVA_1_6_HOME,JAVA_1_7_HOME,JAVA_1_8_HOME,JAVA_1_9_HOME</_removeheaders>
						<Bundle-SymbolicName>${osgi.symbolicName}</Bundle-SymbolicName>
						<Export-Package>${osgi.export}</Export-Package>
						<Private-Package>${osgi.private}</Private-Package>
						<Import-Package>${osgi.import}</Import-Package>
						<DynamicImport-Package>${osgi.dynamicImport}</DynamicImport-Package>
						<Bundle-DocURL>${project.url}</Bundle-DocURL>
					</instructions>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>${jar.version}</version>
				<configuration>
					<archive>
						<manifestFile>${project.build.directory}/osgi/MANIFEST.MF</manifestFile>
						<manifest>
							<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
							<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
						</manifest>
						<manifestEntries>
							<Automatic-Module-Name>${module.name}</Automatic-Module-Name>
							<Implementation-Build-Date>${maven.build.timestamp}</Implementation-Build-Date>
							<X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>
							<X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>
						</manifestEntries>
					</archive>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>clirr-maven-plugin</artifactId>
				<version>${clirr.version}</version>
				<configuration>
					<comparisonVersion>${clirr.comparisonVersion}</comparisonVersion>
					<failOnError>false</failOnError>
					<failOnWarning>false</failOnWarning>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-scm-plugin</artifactId>
				<version>${scm.version}</version>
				<configuration>
					<connectionType>connection</connectionType>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>prepare-agent</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.gaul</groupId>
				<artifactId>modernizer-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-pmd-plugin</artifactId>
				<version>${pmd.version}</version>
				<executions>
					<execution>
						<phase>verify</phase>
						<goals>
							<goal>pmd</goal>
							<goal>cpd</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<rulesets>
						<ruleset>rulesets/java/ali-comment.xml</ruleset>
						<ruleset>rulesets/java/ali-concurrent.xml</ruleset>
						<ruleset>rulesets/java/ali-constant.xml</ruleset>
						<ruleset>rulesets/java/ali-exception.xml</ruleset>
						<ruleset>rulesets/java/ali-flowcontrol.xml</ruleset>
						<ruleset>rulesets/java/ali-naming.xml</ruleset>
						<ruleset>rulesets/java/ali-oop.xml</ruleset>
						<ruleset>rulesets/java/ali-orm.xml</ruleset>
						<ruleset>rulesets/java/ali-other.xml</ruleset>
						<ruleset>rulesets/java/ali-set.xml</ruleset>
					</rulesets>
					<linkXref>true</linkXref>
					<minimumTokens>100</minimumTokens>
					<targetJdk>${maven.compiler.target}</targetJdk>
					<verbose>true</verbose>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>com.alibaba.p3c</groupId>
						<artifactId>p3c-pmd</artifactId>
						<version>${p3c.version}</version>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>

		<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.properties</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
			<resource>
				<directory>${project.basedir}</directory>
				<targetPath>META-INF</targetPath>
				<includes>
					<include>LICENSE</include>
					<include>NOTICE</include>
				</includes>
			</resource>
		</resources>
		<extensions>
			<extension>
				<groupId>org.apache.maven.wagon</groupId>
				<artifactId>wagon-ssh</artifactId>
				<version>${wagon-ssh.version}</version>
			</extension>
		</extensions>
    </build>

    <reporting>
        <plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<version>${project-info.version}</version>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<reportSets>
					<reportSet>
						<id>default</id>
						<reports>
							<report>javadoc</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jxr-plugin</artifactId>
				<version>${jxr.version}</version>
			</plugin>

			<plugin>
				<groupId>com.github.spotbugs</groupId>
				<artifactId>spotbugs-maven-plugin</artifactId>
				<version>${spotbugs.version}</version>
				<configuration>
					<xmlOutput>true</xmlOutput>
					<xmlOutputDirectory>${project.build.directory}/spotbugs-reports</xmlOutputDirectory>
					<spotbugsXmlOutputDirectory>${project.build.directory}/spotbugs-reports</spotbugsXmlOutputDirectory>
					<threshold>High</threshold>
					<effort>Max</effort>
					<visitors>FindDeadLocalStores,UnreadFields</visitors>
					<onlyAnalyze>${spotbugs.onlyAnalyze}</onlyAnalyze>
					<relaxed>true</relaxed>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-report-plugin</artifactId>
				<version>${surefire.version}</version>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-changes-plugin</artifactId>
				<version>${changes.version}</version>
				<configuration>
					<issueLinkTemplate>%URL%/issues/%ISSUE%</issueLinkTemplate>
				</configuration>
				<reportSets>
					<reportSet>
						<reports>
							<report>changes-report</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-pmd-plugin</artifactId>
				<version>${pmd.version}</version>
				<configuration>
					<analysisCache>true</analysisCache>
					<linkXRef>true</linkXRef>
					<minimumTokens>100</minimumTokens>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>taglist-maven-plugin</artifactId>
				<version>${taglist.version}</version>
				<configuration>
					<tagListOptions>
						<tagClasses>
							<tagClass>
								<displayName>Todo Work</displayName>
								<tags>
									<tag>
										<matchString>TODO</matchString>
										<matchType>ignoreCase</matchType>
									</tag>
									<tag>
										<matchString>FIXME</matchString>
										<matchType>ignoreCase</matchType>
									</tag>
								</tags>
							</tagClass>
						</tagClasses>
					</tagListOptions>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>clirr-maven-plugin</artifactId>
				<version>${clirr.version}</version>
				<configuration>
					<comparisonVersion>${clirr.comparisonVersion}</comparisonVersion>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>versions-maven-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<reportSets>
					<reportSet>
						<reports>
							<!-- select non-aggregate reports -->
							<report>report</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>
        </plugins>
    </reporting>

	<profiles>
		<profile>
			<id>release</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
						<version>${source.version}</version>
						<executions>
							<execution>
								<id>attach-sources</id>
								<phase>package</phase>
								<goals>
									<goal>jar-no-fork</goal>
								</goals>
								<configuration>
									<archive>
										<manifest>
											<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
											<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
										</manifest>
										<manifestEntries>
											<Implementation-Build-Date>${maven.build.timestamp}</Implementation-Build-Date>
											<X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>
											<X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>
										</manifestEntries>
									</archive>
								</configuration>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<version>${javadoc.version}</version>
						<executions>
							<execution>
								<id>attach-javadocs</id>
								<goals>
									<goal>jar</goal>
								</goals>
								<configuration>
									<archive>
										<manifest>
											<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
											<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
										</manifest>
										<manifestEntries>
											<Implementation-Build-Date>${maven.build.timestamp}</Implementation-Build-Date>
											<X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>
											<X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>
										</manifestEntries>
									</archive>
									<additionalJOption>-Xdoclint:none</additionalJOption>
								</configuration>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
						<version>${gpg.version}</version>
						<executions>
							<execution>
								<id>sign-artifacts</id>
								<phase>verify</phase>
								<goals>
									<goal>sign</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-release-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>bundle</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-assembly-plugin</artifactId>
						<version>${assembly.version}</version>
						<dependencies>
							<dependency>
								<groupId>com.github.fartherp</groupId>
								<artifactId>base-bundle-descriptor</artifactId>
								<version>${base-bundle.version}</version>
							</dependency>
						</dependencies>
						<executions>
							<execution>
								<phase>package</phase>
								<goals>
									<goal>single</goal>
								</goals>
								<configuration>
									<attach>true</attach>
									<appendAssemblyId>false</appendAssemblyId>
									<descriptorRefs>
										<descriptorRef>base-bundle</descriptorRef>
									</descriptorRefs>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
