pi4j-parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.pi4j</groupId>
<artifactId>pi4j-parent</artifactId>
<version>4.0.2</version>
</dependency><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>4.0.2</version>
<name>Pi4J :: Parent POM</name>
<description>Parent Maven POM for the Pi4J Project</description>
<url>https://pi4j.com</url>
<inceptionYear>2012</inceptionYear>
<packaging>pom</packaging>
<!-- ORGANIZATION -->
<organization>
<name>Pi4J</name>
<url>https://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>
<linkedin>https://www.linkedin.com/in/frankdelporte/</linkedin>
<mastodon>https://foojay.social/@frankdelporte</mastodon>
<bluesky>https://bsky.app/profile/frankdelporte.be</bluesky>
</properties>
<roles>
<role>facilitator</role>
<role>developer</role>
</roles>
<timezone>+1</timezone>
</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>
<developer>
<id>alex9849</id>
<name>Alexander Liggesmeyer</name>
<url>https://alexander.liggesmeyer.net/</url>
<roles>
<role>developer</role>
</roles>
<timezone>+1</timezone>
</developer>
<developer>
<id>taartspi</id>
<name>Tom Aarts</name>
<roles>
<role>developer</role>
</roles>
</developer>
<developer>
<id>DigitalSmile</id>
<name>Nick Gritsenko</name>
<roles>
<role>developer</role>
</roles>
</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.git</developerConnection>
<connection>scm:git:ssh://git@github.com/Pi4J/pi4j.git</connection>
<url>https://github.com/Pi4J/pi4j.git</url>
</scm>
<!-- ISSUE MANAGEMENT -->
<issueManagement>
<url>https://github.com/Pi4J/pi4j/issues</url>
<system>github</system>
</issueManagement>
<!-- DISTRIBUTION REPOSITORIES -->
<distributionManagement>
<downloadUrl>https://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://central.sonatype.com/repository/maven-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 ARE THE Pi4J MODULES -->
<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>25</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<!-- DEPENDENCY VERSIONS -->
<!--
It seems we are stuck at this version of ant-contrib. Bumping it leads to:
Error executing Ant tasks: 'org.apache.tools.ant.util.FileUtils
org.apache.tools.ant.util.FileUtils.getFileUtils()
-->
<ant-contrib.version>20020829</ant-contrib.version>
<ant-jsch.version>1.10.15</ant-jsch.version>
<jna.version>5.16.0</jna.version>
<jsch.version>0.1.55</jsch.version>
<junit.jupiter.version>5.12.1</junit.jupiter.version>
<slf4j.version>2.0.17</slf4j.version>
<jna.version>5.15.0</jna.version>
<!-- PLUGIN VERSIONS -->
<build-helper-maven-plugin.version>3.6.0</build-helper-maven-plugin.version>
<exec-maven-plugin.version>3.5.0</exec-maven-plugin.version>
<jdeb.version>1.8</jdeb.version>
<lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
<maven-antrun-plugin.version>3.1.0</maven-antrun-plugin.version>
<maven-assembly-plugin.version>3.7.1</maven-assembly-plugin.version>
<maven-bundle-plugin.version>5.1.9</maven-bundle-plugin.version>
<maven-compiler-plugin.version>3.13.0</maven-compiler-plugin.version>
<maven-checkstyle-plugin.version>3.6.0</maven-checkstyle-plugin.version>
<maven-dependency-plugin.version>3.8.1</maven-dependency-plugin.version>
<maven-gpg-plugin.version>3.2.1</maven-gpg-plugin.version>
<maven-jar-plugin.version>3.4.2</maven-jar-plugin.version>
<maven-javadoc-plugin.version>3.11.1</maven-javadoc-plugin.version>
<maven-release-plugin.version>3.1.1</maven-release-plugin.version>
<maven-resource-plugin.version>3.3.1</maven-resource-plugin.version>
<maven-scm-plugin.version>2.1.0</maven-scm-plugin.version>
<maven-site-plugin.version>3.21.0</maven-site-plugin.version>
<maven-source-plugin.version>3.3.1</maven-source-plugin.version>
<maven-surefire-plugin.version>3.5.2</maven-surefire-plugin.version>
<native-maven-plugin.version>1.0-alpha-9</native-maven-plugin.version>
<central-publishing-maven-plugin.version>0.9.0</central-publishing-maven-plugin.version>
<!-- REPORTS VERSIONS -->
<maven-project-info-reports-plugin.version>3.5.0</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>
<!-- Project Properties -->
<launcher.class>com.pi4j.test/com.pi4j.test.GpiodTest</launcher.class>
<launcher.args></launcher.args>
<!-- <launcher.args>ButtonApp</launcher.args> -->
<!-- Raspberry Pi Setup -->
<raspberrypi.ipnumber>cocktailpi.local</raspberrypi.ipnumber>
<raspberrypi.port>22</raspberrypi.port>
<raspberrypi.username>pi</raspberrypi.username>
<raspberrypi.password>raspberry</raspberrypi.password>
<raspberrypi.deploydirectory>/home/pi/deploy</raspberrypi.deploydirectory>
<raspberrypi.jvmOptions/>
</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>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>
<forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory"/>
<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>
<configuration>
<source>${java.version}</source>
<detectJavaApiLink>false</detectJavaApiLink>
<doclint>none</doclint>
<!-- Optional: skip errors -->
<failOnError>false</failOnError>
<additionalOptions>-Xdoclint:none</additionalOptions>
</configuration>
</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>
<!-- ENFORCER PLUGIN -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.5.0</version>
</plugin>
</plugins>
</pluginManagement>
<!-- GLOBAL BUILD PLUGINS (used when building all modules) -->
<plugins>
<!-- SPECIFY MINIMAL MAVEN VERSION -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<id>enforce-maven</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>[3.9,)</version>
</requireMavenVersion>
<requireJavaVersion>
<version>${java.version}</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<!-- 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-checkstyle-plugin</artifactId>
<version>${maven-checkstyle-plugin.version}</version>
<executions>
<execution>
<id>checkstyle-check</id>
<goals>
<goal>check</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
<configuration>
<failsOnError>true</failsOnError>
<configLocation>config/checkstyle/checkstyle.xml</configLocation>
<excludes>**/module-info.java</excludes>
<outputFileFormat>plain</outputFileFormat>
<consoleOutput>true</consoleOutput>
</configuration>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${central-publishing-maven-plugin.version}</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
</configuration>
</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 Maven Central -->
<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.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>