<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.pi4j</groupId>
	<artifactId>pi4j-parent</artifactId>
    <version>2.3.0</version>
	<name>Pi4J :: Parent POM</name>
	<description>Parent Maven POM for the Pi4J Project</description>
	<url>https://v2.pi4j.com</url>
	<inceptionYear>2012</inceptionYear>
	<packaging>pom</packaging>

	<!-- ORGANIZATION -->
	<organization>
		<name>Pi4J</name>
		<url>https://v2.pi4j.com</url>
	</organization>

	<!-- LICENSE -->
    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
            <comments>A business-friendly OSS license</comments>
        </license>
    </licenses>

	<!-- DEVELOPERS/CONTRIBUTORS -->
	<developers>
		<developer>
			<name>Robert Savage</name>
			<email>robert@pi4j.com</email>
			<url>http://robertsavage.me</url>
            <organization>Savage Software</organization>
			<organizationUrl>http://savagesoftware.com</organizationUrl>
            <properties>
                <blog>http://savagehomeautomation.com</blog>
                <linikedin>https://www.linkedin.com/in/robert-savage</linikedin>
                <twitter>https://twitter.com/savageautomate</twitter>
            </properties>
			<roles>
				<role>sponsor</role>
				<role>architect</role>
				<role>developer</role>
			</roles>
		</developer>
        <developer>
            <name>Daniel Sendula</name>
            <email>daniel@pi4j.com</email>
            <roles>
                <role>developer</role>
            </roles>
        </developer>
        <developer>
            <name>Frank Delporte</name>
            <email>frank@pi4j.com</email>
            <url>https://webtechie.be</url>
            <properties>
                <blog>https://webtechie.be</blog>
                <linikedin>https://www.linkedin.com/in/frankdelporte/</linikedin>
                <twitter>https://twitter.com/FrankDelporte</twitter>
            </properties>
            <roles>
                <role>facilitator</role>
                <role>developer</role>
            </roles>
        </developer>
		<developer>
			<id>eitch</id>
			<name>Robert von Burg</name>
			<email>eitch@eitchnet.ch</email>
			<url>http://strolch.li</url>
			<roles>
				<role>developer</role>
			</roles>
			<timezone>+1</timezone>
		</developer>
	</developers>
    <contributors>
        <contributor>
            <name>Marcus Hirt</name>
            <url>http://hirt.se/</url>
            <organization>Robo4J</organization>
            <organizationUrl>http://www.robo4j.io</organizationUrl>
            <properties>
                <linkedin>https://www.linkedin.com/in/mhirt</linkedin>
                <twitter>https://twitter.com/hirt</twitter>
            </properties>
        </contributor>
        <contributor>
            <name>Miroslav Wengner</name>
            <url>http://www.wengnermiro.com/</url>
            <organization>Robo4J</organization>
            <organizationUrl>http://www.robo4j.io</organizationUrl>
            <properties>
                <linkedin>https://www.linkedin.com/in/mwengner</linkedin>
                <twitter>https://twitter.com/miragemiko</twitter>
            </properties>
        </contributor>
    </contributors>

	<!-- SOURCE CONTROL -->
	<scm>
		<developerConnection>scm:git:ssh://git@github.com/Pi4J/pi4j-v2.git</developerConnection>
		<connection>scm:git:ssh://git@github.com/Pi4J/pi4j-v2.git</connection>
		<url>https://github.com/Pi4J/pi4j-v2.git</url>
	</scm>

	<!-- ISSUE MANAGEMENT -->
	<issueManagement>
		<url>https://github.com/Pi4J/pi4j-v2/issues</url>
		<system>github</system>
	</issueManagement>

	<!-- DISTRIBUTION REPOSITORIES -->
	<distributionManagement>
		<downloadUrl>https://v2.pi4j.com/download</downloadUrl>
		<repository>
			<id>sonatype-oss-staging</id>
			<name>Sonatype Open Source Maven Repository</name>
			<url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
		</repository>
		<snapshotRepository>
			<id>sonatype-oss-snapshots</id>
			<name>Sonatype Open Source Maven Snapshots Repository</name>
			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
		</snapshotRepository>
	</distributionManagement>

    <!-- DEPENDENCY REPOSITORIES -->
    <repositories>
        <repository>
            <id>oss-snapshots-repo</id>
            <name>Sonatype OSS Maven Repository</name>
            <url>https://oss.sonatype.org/content/groups/public</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

	<!-- PROJECT MODULES -->
	<modules>
        <!-- THE FOLLOWING MODULES ARE V2 -->
        <module>libraries/pi4j-library</module>
        <module>pi4j-core</module>
        <module>plugins/pi4j-plugin</module>
        <module>pi4j-test</module>
        <module>pi4j-distribution</module>
    </modules>

	<!-- BUILD PROPERTIES -->
	<properties>
        <!-- =================================================================== -->
        <!-- SELECT THE PROPER COMPILER OPTION FOR THE NATIVE LIBRARY BUILDS     -->
        <!-- The supported options are:                                          -->
        <!--    "CROSS-COMPILER"  for cross-compiling on your host with a cross  -->
        <!--                      compiler environment setup for 64-bit (aarch64)-->
        <!--                      and 32-bit (armhf) platforms.  The host must   -->
        <!--                      be a Linux-based system with an Intel/AMD or   -->
        <!--                      ARM 64-bit CPU and Operating System.  The host -->
        <!--                      can be a RaspberryPi 3B or 4B that is running  -->
        <!--                      Pi OS 64-bit. (Unable to cross-compile for     -->
        <!--                      64-bit library on 32-bit only hosts.)          -->
        <!--                      [THIS IS THE DEFAULT IF NOT SPECIFIED]         -->
        <!--                                                                     -->
        <!--    "DOCKER-COMPILER" for cross-compiling inside a Docker container  -->
        <!--                      best option when compiling on MacOS or Windows -->
        <!--                      This option is also suitable for a Linux-based -->
        <!--                      system where you would prefer not to install   -->
        <!--                      ARM-based cross-compilers and other build      -->
        <!--                      environment requirements like Java/JDK and     -->
        <!--                      Maven.  This open only requires that you have  -->
        <!--                      Docker (https://www.docker.com/) or Docker     -->
        <!--                      Desktop installed and running on a 64-bit      -->
        <!--                      Intel/AMD or ARM host system.                  -->
        <!--                                                                     -->
        <!-- (Note: you should override these options in a custom active profile -->
        <!--        in your local M2 settings.xml file or use one of the         -->
        <!--        associated profiles with the '-P' flag.  -->
        <!-- =================================================================== -->

        <!-- YOU CAN DEFINE ONE OF THE FOLLOWING YOU A CUSTOM ACTIVE PROFILE
             IN YOU ~/.m2/settings.xml file TO PERMANENTLY APPLY THE DESIRED
             COMPILER BEHAVIOR -->
        <!-- <pi4j.native.compiler>CROSS-COMPILER</pi4j.native.compiler> -->
        <!-- <pi4j.native.compiler>DOCKER-COMPILER</pi4j.native.compiler> -->

        <!-- OR YOU CAN DEFINE THE PROPERTY VALUE USING THE '-D' FLAG ON YOUR MAVEN COMMAND -->
        <!-- i.e.:   mvn clean install -Pnative -Dpi4j.native.compiler=CROSS-COMPILER -->
        <!-- i.e.:   mvn clean install -Pnative -Dpi4j.native.compiler=DOCKER-COMPILER -->

        <!-- OR YOU CAN DEFINE THE ASSOCIATED PROFILE VALUE USING THE '-P' FLAG ON YOUR MAVEN COMMAND -->
        <!-- i.e.:   mvn clean install -Pnative -Pcross-compile -->
        <!-- i.e.:   mvn clean install -Pnative -Pdocker -->

        <!-- used internally; do not change value here -->
        <!-- BY DEFAULT, ENABLE THE 'CROSS-COMPILER' FOR NATIVE BUILDS -->
        <pi4j.native.compiler.effective>CROSS-COMPILER</pi4j.native.compiler.effective>

        <!-- DEFAULT SETTINGS FOR REMOTELY BUILDING NATIVE LIBRARY ON A REMOTE PLATFORM -->
        <pi4j.default.host>192.168.1.1</pi4j.default.host>
        <pi4j.default.port>22</pi4j.default.port>
        <pi4j.default.user>pi</pi4j.default.user>
        <pi4j.default.password>raspberry</pi4j.default.password>
        <pi4j.default.directory>pi4j-temp</pi4j.default.directory>

        <!-- SETTINGS FOR COPYING Pi4J ARTIFACTS TO DEVELOPMENT DEVICE/PLATFORM -->
        <pi4j.dev.transfer>false</pi4j.dev.transfer>
        <pi4j.dev.host>${pi4j.default.host}</pi4j.dev.host>
        <pi4j.dev.port>${pi4j.default.port}</pi4j.dev.port>
        <pi4j.dev.user>${pi4j.default.user}</pi4j.dev.user>
        <pi4j.dev.password>${pi4j.default.password}</pi4j.dev.password>
        <pi4j.dev.directory>pi4j-dev</pi4j.dev.directory>

        <pi4j.test.pigpio.host>${pi4j.default.host}</pi4j.test.pigpio.host>
        <pi4j.test.pigpio.port>8888</pi4j.test.pigpio.port>

        <!-- SETTING FOR ARDUINO TEST HARNESS HARDWARE TESTING -->
        <!-- (you will need to override these in your "~/.m2/settings.xml" for your own development) -->
        <pi4j.test.harness.enabled>false</pi4j.test.harness.enabled>
        <pi4j.test.harness.port>tty.usbmodem142301</pi4j.test.harness.port>

        <!-- DEFAULT Pi4J BUILD PROPERTIES FOR THE 'RaspberryPi' PLATFORM -->
        <!--<raspberrypi.build>false</raspberrypi.build>-->
        <!--<raspberrypi.platform>raspberrypi</raspberrypi.platform>-->
        <!--<raspberrypi.name>RaspberryPi</raspberrypi.name>-->
        <!--<raspberrypi.host>${pi4j.default.host}</raspberrypi.host>-->
        <!--<raspberrypi.port>${pi4j.default.port}</raspberrypi.port>-->
        <!--<raspberrypi.user>${pi4j.default.user}</raspberrypi.user>-->
        <!--<raspberrypi.password>${pi4j.default.password}</raspberrypi.password>-->
        <!--<raspberrypi.directory>${pi4j.default.directory}</raspberrypi.directory>-->

        <!-- PROJECT ENCODING PROPERTIES -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <!-- JAVA COMPILER VERSIONS -->
        <java.version>11</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>

        <!-- DEPENDENCY VERSIONS -->
        <ant-jsch.version>1.10.8</ant-jsch.version>
        <jsch.version>0.1.55</jsch.version>
        <ant-contrib.version>20020829</ant-contrib.version>
        <junit.jupiter.version>5.6.2</junit.jupiter.version>
        <junit.platform.version>1.6.2</junit.platform.version>
        <slf4j.version>1.7.32</slf4j.version>
        <jSerialComm.version>2.6.2</jSerialComm.version>
        <gson.version>2.8.6</gson.version>
        <json.version>20200518</json.version>

        <!-- PLUGIN VERSIONS -->
        <maven-jar-plugin.version>3.2.0</maven-jar-plugin.version>
        <maven-dependency-plugin.version>3.1.2</maven-dependency-plugin.version>
        <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
        <maven-source-plugin.version>3.2.0</maven-source-plugin.version>
        <maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
        <maven-resource-plugin.version>3.2.0</maven-resource-plugin.version>
        <maven-site-plugin.version>3.9.1</maven-site-plugin.version>
        <maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version>
        <maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
        <nexus-staging-maven-plugin.version>1.6.13</nexus-staging-maven-plugin.version>
        <maven-scm-plugin.version>1.11.2</maven-scm-plugin.version>
        <maven-bundle-plugin.version>5.1.2</maven-bundle-plugin.version>
        <maven-antrun-plugin.version>3.0.0</maven-antrun-plugin.version>
        <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
        <native-maven-plugin.version>1.0-alpha-9</native-maven-plugin.version>
        <maven-release-plugin.version>3.0.0-M4</maven-release-plugin.version>
        <license-maven-plugin.version>2.0.0</license-maven-plugin.version>
        <build-helper-maven-plugin.version>3.2.0</build-helper-maven-plugin.version>
        <jdeb.version>1.8</jdeb.version>
        <exec-maven-plugin.version>3.0.0</exec-maven-plugin.version>
        <s3-upload-maven-plugin.version>1.5</s3-upload-maven-plugin.version>
        <lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>

        <!-- REPORTS VERSIONS -->
        <maven-project-info-reports-plugin.version>3.1.1</maven-project-info-reports-plugin.version>

        <!-- SPECIAL ACCESS PROPERTIES -->
        <!-- These are only used by project committer/publisher -->
        <pi4j.aws.access.key></pi4j.aws.access.key>
        <pi4j.aws.secret.key></pi4j.aws.secret.key>
        <pi4j.gpg.sign>false</pi4j.gpg.sign>
        <pi4j.gpg.key></pi4j.gpg.key>
        <pi4j.gpg.keyring></pi4j.gpg.keyring>
        <pi4j.gpg.passphrase></pi4j.gpg.passphrase>
        <gpg.keyname>${pi4j.gpg.key}</gpg.keyname>
	</properties>

    <!-- PROJECT DEPENDENCIES -->
    <dependencyManagement>
        <dependencies>
            <!-- ANT/TASKING DEPENDENCIES -->
            <dependency>
                <groupId>org.apache.ant</groupId>
                <artifactId>ant-jsch</artifactId>
                <version>${ant-jsch.version}</version>
            </dependency>
            <dependency>
                <groupId>com.jcraft</groupId>
                <artifactId>jsch</artifactId>
                <version>${jsch.version}</version>
            </dependency>
            <dependency>
                <groupId>ant-contrib</groupId>
                <artifactId>ant-contrib</artifactId>
                <version>${ant-contrib.version}</version>
            </dependency>

            <!-- LOGGING DEPENDENCIES -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>${slf4j.version}</version>
            </dependency>

            <!-- UNIT TESTING DEPENDENCIES -->
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-api</artifactId>
                <version>${junit.jupiter.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
                <version>${junit.jupiter.version}</version>
                <scope>test</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <!-- GLOBAL DEPENDENCIES -->
    <dependencies>

        <!-- LOGGER DEPENDENCIES -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- TEST DEPENDENCIES -->
        <dependency>
            <groupId>com.fazecast</groupId>
            <artifactId>jSerialComm</artifactId>
            <version>2.5.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>

	<!-- BUILD INSTRUCTIONS -->
	<build>

        <!-- GLOBAL PROJECT RESOURCES -->
		<resources>
			<resource>
				<directory>${basedir}</directory>
				<filtering>false</filtering>
				<includes>
					<include>LICENSE.txt</include>
					<include>NOTICE.txt</include>
					<include>README.md</include>
				</includes>
			</resource>
		</resources>

        <!-- PLUGIN MANAGEMENT -->
        <pluginManagement>
            <plugins>

                <!-- MAVEN RELEASE PLUGIN -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>${maven-release-plugin.version}</version>
                    <configuration>
                        <tagNameFormat>release/@{project.version}</tagNameFormat>
                        <pushChanges>false</pushChanges>
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                        <arguments>-Drelease-build</arguments>
                    </configuration>
                </plugin>

                <!-- JAVA COMPILER -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven-compiler-plugin.version}</version>
                    <configuration>
                        <release>${java.version}</release>
                        <showDeprecation>true</showDeprecation>
                        <showWarnings>true</showWarnings>
                        <verbose>false</verbose>
                    </configuration>
                </plugin>

                <!-- MAVEN RUN JUNIT5 TESTS -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${maven-surefire-plugin.version}</version>
                    <configuration>
                        <excludes>
                            <exclude>**/*UsingTestHarness.java</exclude>
                        </excludes>
                    </configuration>
                </plugin>

                <!-- MAVEN JAR PLUGIN -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>${maven-jar-plugin.version}</version>
                </plugin>

                <!-- INCLUDE SOURCE JAR -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <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>

                <!-- INCLUDE RESOURCES -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>${maven-resource-plugin.version}</version>
                    <configuration>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>

                <!-- INCLUDE JAVADOC JAR -->
                <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>
                </plugin>

                <!-- DOWNLOAD LICENSE, README & NOTICE ARTIFACTS -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>${maven-dependency-plugin.version}</version>
                    <executions>
                        <execution>
                            <id>copy-license</id>
                            <phase>validate</phase>
                            <goals>
                                <goal>copy</goal>
                            </goals>
                            <configuration>
                                <artifactItems>
                                    <artifactItem>
                                        <groupId>com.pi4j</groupId>
                                        <artifactId>pi4j-parent</artifactId>
                                        <version>${project.version}</version>
                                        <classifier>license</classifier>
                                        <type>txt</type>
                                        <overWrite>true</overWrite>
                                        <outputDirectory>${project.build.directory}</outputDirectory>
                                        <destFileName>LICENSE.txt</destFileName>
                                    </artifactItem>
                                    <artifactItem>
                                        <groupId>com.pi4j</groupId>
                                        <artifactId>pi4j-parent</artifactId>
                                        <version>${project.version}</version>
                                        <classifier>notice</classifier>
                                        <type>txt</type>
                                        <overWrite>true</overWrite>
                                        <outputDirectory>${project.build.directory}</outputDirectory>
                                        <destFileName>NOTICE.txt</destFileName>
                                    </artifactItem>
                                    <artifactItem>
                                        <groupId>com.pi4j</groupId>
                                        <artifactId>pi4j-parent</artifactId>
                                        <version>${project.version}</version>
                                        <classifier>readme</classifier>
                                        <type>md</type>
                                        <overWrite>true</overWrite>
                                        <outputDirectory>${project.build.directory}</outputDirectory>
                                        <destFileName>README.md</destFileName>
                                    </artifactItem>
                                </artifactItems>
                                <outputDirectory>${project.build.directory}</outputDirectory>
                                <overWriteReleases>false</overWriteReleases>
                                <overWriteSnapshots>true</overWriteSnapshots>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

                <!-- GPG PLUGIN (used to sign JARs) -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-gpg-plugin</artifactId>
                    <version>${maven-gpg-plugin.version}</version>
                    <executions>
                        <execution>
                            <id>sign-artifacts</id>
                            <phase>verify</phase>
                            <goals>
                                <goal>sign</goal>
                            </goals>
                            <configuration>
                                <keyname>${gpg.keyname}</keyname>
                                <passphraseServerId>${gpg.keyname}</passphraseServerId>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

                <!-- SCM PLUGIN (used to access github) -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-scm-plugin</artifactId>
                    <version>${maven-scm-plugin.version}</version>
                </plugin>

                <!-- OSGi BUNDLE -->
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>${maven-bundle-plugin.version}</version>
                    <extensions>true</extensions>
                </plugin>

                <!-- USED TO GENERATE HEADER FILES FOR NATIVE LIBS -->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>native-maven-plugin</artifactId>
                    <version>${native-maven-plugin.version}</version>
                </plugin>

                <!-- GENERATE SITE DOCUMENTATION -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>${maven-site-plugin.version}</version>
                </plugin>

                <!-- MAVEN ASSEMBLY PLUGIN -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>${maven-assembly-plugin.version}</version>
                </plugin>

                <!-- MAVEN ASSEMBLY PLUGIN -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>${maven-antrun-plugin.version}</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.ant</groupId>
                            <artifactId>ant-jsch</artifactId>
                            <version>${ant-jsch.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>com.jcraft</groupId>
                            <artifactId>jsch</artifactId>
                            <version>${jsch.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>ant-contrib</groupId>
                            <artifactId>ant-contrib</artifactId>
                            <version>${ant-contrib.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>

                <!-- EXEC MAVEN PLUGIN -->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>${exec-maven-plugin.version}</version>
                </plugin>

                <!-- DEPLOY GITHUB SITE PLUGIN -->
                <plugin>
                    <groupId>com.github.github</groupId>
                    <artifactId>site-maven-plugin</artifactId>
                    <version>${site-maven-plugin.version}</version>
                </plugin>

                <!-- BUILD HELPER PLUGIN (used to attach license file as artifacts) -->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>${build-helper-maven-plugin.version}</version>
                </plugin>

                <!-- CREATE DEBIAN (.DEB) PACKAGE PLUGIN -->
                <plugin>
                    <groupId>org.vafer</groupId>
                    <artifactId>jdeb</artifactId>
                    <version>${jdeb.version}</version>
                </plugin>

                <!-- AWS S3 UPLOAD PLUGIN -->
                <plugin>
                    <groupId>com.bazaarvoice.maven.plugins</groupId>
                    <artifactId>s3-upload-maven-plugin</artifactId>
                    <version>${s3-upload-maven-plugin.version}</version>
                </plugin>

                <!-- ENFORCER PLUGIN -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>3.0.0-M2</version>
                </plugin>

                <!-- Deploy to Maven plugin -->
                <plugin>
                    <groupId>org.sonatype.plugins</groupId>
                    <artifactId>nexus-staging-maven-plugin</artifactId>
                    <version>${nexus-staging-maven-plugin.version}</version>
                    <extensions>true</extensions>
                    <configuration>
                        <serverId>oss.sonatype.org</serverId>
                        <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                    </configuration>
                    <executions>
                        <execution>
                            <id>deploy-to-sonatype</id>
                            <phase>deploy</phase>
                            <goals>
                                <goal>deploy</goal>
                                <goal>release</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

            </plugins>
        </pluginManagement>

        <!-- GLOBAL BUILD PLUGINS (used when building all modules) -->
		<plugins>
			<!-- USE LATEST SCM PLUGIN TO SUPPORT GIT -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-scm-plugin</artifactId>
				<configuration>
					<goals>install</goals>
				</configuration>
			</plugin>

			<!-- ATTACH LICENSE AS ARTIFACT -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>attach-artifacts</id>
						<phase>package</phase>
						<goals>
							<goal>attach-artifact</goal>
						</goals>
						<configuration>
							<artifacts>
								<artifact>
									<file>${basedir}/LICENSE.txt</file>
									<type>txt</type>
									<classifier>license</classifier>
								</artifact>
								<artifact>
									<file>${basedir}/NOTICE.txt</file>
									<type>txt</type>
									<classifier>notice</classifier>
								</artifact>
								<artifact>
									<file>${basedir}/README.md</file>
									<type>md</type>
									<classifier>readme</classifier>
								</artifact>
							</artifacts>
						</configuration>
					</execution>
				</executions>
				<inherited>false</inherited>
			</plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <executions>
                    <execution>
                        <id>enforce-java</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireJavaVersion>
                                    <version>${java.version}</version>
                                </requireJavaVersion>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
		</plugins>
	</build>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>${maven-javadoc-plugin.version}</version>
                <reportSets>
                    <reportSet>
                        <id>non-aggregate</id>
                        <configuration>
                            <verbose>false</verbose>
                            <linksource>true</linksource>
                            <name>JavaDocs</name>
                            <description>JavaDoc API documentation</description>
                            <outputName>javadoc/index</outputName>
                            <sourcepath>pi4j-core/src/main/java</sourcepath>
                        </configuration>
                        <reports>
                            <report>javadoc</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>${maven-project-info-reports-plugin.version}</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>summary</report>
                            <report>project-team</report>
                            <report>license</report>
                            <report>scm</report>
                            <report>issue-tracking</report>
                            <report>plugins</report>
                            <report>dependency-info</report>
                            <report>dependency-management</report>
                            <report>plugin-management</report>
                            <report>distribution-management</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>
    </reporting>

    <profiles>
        <!-- DEFAULT PROFILE -->
        <profile>
            <id>default-profile</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>

        <!-- INCLUDE HARDWARE INTEGRATION TESTS WHEN USING THIS BUILD PROFILE -->
        <profile>
            <id>test-hardware</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <includes>**</includes>
                            <systemPropertyVariables>
                                <pi4j.pigpio.host>${pi4j.test.pigpio.host}</pi4j.pigpio.host>
                                <pi4j.pigpio.port>${pi4j.test.pigpio.port}</pi4j.pigpio.port>
                                <pi4j.test.harness.port>${pi4j.test.harness.port}</pi4j.test.harness.port>
                            </systemPropertyVariables>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!-- BUILD & INCLUDE JAVA SOURCES JAR  -->
        <profile>
            <id>sources</id>
            <activation>
                <property>
                    <name>release-build</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <!-- INCLUDE SOURCE JAR -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <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>
                </plugins>
            </build>
        </profile>

        <!-- BUILD & INCLUDE JAVADOC JAR  -->
        <profile>
            <id>javadoc</id>
            <activation>
                <property>
                    <name>release-build</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <!-- INCLUDE JAVADOC -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>${maven-javadoc-plugin.version}</version>
                        <configuration>
                            <additionalOptions>
                            </additionalOptions>
                        </configuration>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!-- BUILD NATIVE SOURCES -->
        <profile>
            <id>native</id>
            <activation>
                <property>
                    <name>release-build</name>
                </property>
            </activation>
            <properties/>
        </profile>

        <!-- SPECIAL PROFILE TO ENABLE DOCKER-COMPILER NATIVE BUILDS BY DEFAULT IF RUNNING ON MACOS -->
        <profile>
            <id>mac</id>
            <activation>
                <os>
                    <family>mac</family>
                </os>
            </activation>
            <properties>
                <pi4j.native.compiler.effective>DOCKER-COMPILER</pi4j.native.compiler.effective>
            </properties>
        </profile>

        <!-- SPECIAL PROFILE TO ENABLE DOCKER-COMPILER NATIVE BUILDS BY DEFAULT IF RUNNING ON WINDOWS -->
        <profile>
            <id>windows</id>
            <activation>
                <os>
                    <family>windows</family>
                </os>
            </activation>
            <properties>
                <pi4j.native.compiler.effective>DOCKER-COMPILER</pi4j.native.compiler.effective>
            </properties>
        </profile>

        <!-- SPECIAL PROFILE TO SUPPORT DOCKER-COMPILER NATIVE BUILDS -->
        <profile>
            <id>docker</id>
            <activation>
                <property>
                    <name>pi4j.native.compiler</name>
                    <value>DOCKER-COMPILER</value>
                </property>
            </activation>
            <properties>
                <pi4j.native.compiler.effective>DOCKER-COMPILER</pi4j.native.compiler.effective>
            </properties>
        </profile>

        <!-- SPECIAL PROFILE TO SUPPORT CROSS-COMPILER NATIVE BUILDS -->
        <profile>
            <id>cross-compile</id>
            <activation>
                <property>
                    <name>pi4j.native.compiler</name>
                    <value>CROSS-COMPILER</value>
                </property>
            </activation>
            <properties>
                <pi4j.native.compiler.effective>CROSS-COMPILER</pi4j.native.compiler.effective>
            </properties>
        </profile>

        <!-- TRANSFER DEVELOPMENT ARTIFACTS TO HARDWARE TESTING PLATFORM -->
        <profile>
            <id>transfer</id>
            <properties>
                <pi4j.dev.transfer>true</pi4j.dev.transfer>
            </properties>
        </profile>

        <!-- profile to deploy to sonatype nexus -->
        <profile>
            <id>deploy</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                    </plugin>
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
