META-INF.maven.org.bidib.com.pi4j.pi4j-core.pom.xml Maven / Gradle / Ivy
<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> <!-- MAVEN ARTIFACT INFORMATION --> <artifactId>pi4j-core</artifactId> <name>Pi4J :: Java Library (Core)</name> <description>Pi4J Java Library for the Raspberry Pi</description> <packaging>jar</packaging> <parent> <groupId>org.bidib.com.pi4j</groupId> <artifactId>pi4j-parent</artifactId> <version>1.2.M1</version> </parent> <!-- PROJECT DEPENDENCIES --> <dependencies> <!-- while the pi4j-native dependency is not needed for compiling this project, including it here ensures that it gets compiled in the maven build lifecycle before the pi4j-core project. --> <dependency> <groupId>org.bidib.com.pi4j</groupId> <artifactId>pi4j-native</artifactId> <classifier>raspberrypi-static</classifier> <version>${project.version}</version> <type>so</type> <scope>provided</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4</artifactId> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito</artifactId> </dependency> </dependencies> <!-- BUILD INSTRUCTIONS --> <build> <resources> <resource> <directory>${project.build.directory}</directory> <filtering>false</filtering> <includes> <include>LICENSE.txt</include> <include>NOTICE.txt</include> <include>README.md</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <filtering>false</filtering> </resource> </resources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine>-noverify</argLine> <!-- needed for running PowerMock for com.pi4j.jni.I2C --> <excludes> <!-- TEMPORARILY EXCLUDED TEST; TEST FAILS ON OSX --> <exclude> **/I2CBusImplTest.java </exclude> </excludes> </configuration> </plugin> <!-- JAVA COMPILER --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </plugin> <!-- INCLUDE SOURCE JAR --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> </plugin> <!-- INCLUDE JAVADOC JAR --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> </plugin> <!-- GENERATE LICENSE HEADERS IN SOURCE FILES --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>license-maven-plugin</artifactId> </plugin> <!-- RETRIEVE THE JNI NATIVE LIBRARY DEPENDENCY --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy</id> <phase>validate</phase> <goals> <goal>copy</goal> </goals> <configuration> <artifactItems> <!-- we define the libpi4j native project as a dependency so that native library can be included in the final packaged pi4j.jar --> <!-- LIBPI4J for the Raspberry-Pi platform --> <artifactItem> <groupId>org.bidib.com.pi4j</groupId> <artifactId>pi4j-native</artifactId> <version>${project.version}</version> <classifier>raspberrypi-static</classifier> <type>so</type> <overWrite>true</overWrite> <outputDirectory>${project.build.directory}/lib/raspberrypi/static</outputDirectory> <destFileName>libpi4j.so</destFileName> </artifactItem> <artifactItem> <groupId>org.bidib.com.pi4j</groupId> <artifactId>pi4j-native</artifactId> <version>${project.version}</version> <classifier>raspberrypi-dynamic</classifier> <type>so</type> <overWrite>true</overWrite> <outputDirectory>${project.build.directory}/lib/raspberrypi/dynamic</outputDirectory> <destFileName>libpi4j.so</destFileName> </artifactItem> <!-- LIBPI4J for the Banana-Pi platform --> <artifactItem> <groupId>org.bidib.com.pi4j</groupId> <artifactId>pi4j-native</artifactId> <version>${project.version}</version> <classifier>bananapi-static</classifier> <type>so</type> <overWrite>true</overWrite> <outputDirectory>${project.build.directory}/lib/bananapi/static</outputDirectory> <destFileName>libpi4j.so</destFileName> </artifactItem> <artifactItem> <groupId>org.bidib.com.pi4j</groupId> <artifactId>pi4j-native</artifactId> <version>${project.version}</version> <classifier>bananapi-dynamic</classifier> <type>so</type> <overWrite>true</overWrite> <outputDirectory>${project.build.directory}/lib/bananapi/dynamic</outputDirectory> <destFileName>libpi4j.so</destFileName> </artifactItem> <!-- LIBPI4J for the Banana-Pro platform --> <artifactItem> <groupId>org.bidib.com.pi4j</groupId> <artifactId>pi4j-native</artifactId> <version>${project.version}</version> <classifier>bananapro-static</classifier> <type>so</type> <overWrite>true</overWrite> <outputDirectory>${project.build.directory}/lib/bananapro/static</outputDirectory> <destFileName>libpi4j.so</destFileName> </artifactItem> <artifactItem> <groupId>org.bidib.com.pi4j</groupId> <artifactId>pi4j-native</artifactId> <version>${project.version}</version> <classifier>bananapro-dynamic</classifier> <type>so</type> <overWrite>true</overWrite> <outputDirectory>${project.build.directory}/lib/bananapro/dynamic</outputDirectory> <destFileName>libpi4j.so</destFileName> </artifactItem> <!-- LIBPI4J for the Sinovoip BPI (BananaPi) platform --> <artifactItem> <groupId>org.bidib.com.pi4j</groupId> <artifactId>pi4j-native</artifactId> <version>${project.version}</version> <classifier>bpi-static</classifier> <type>so</type> <overWrite>true</overWrite> <outputDirectory>${project.build.directory}/lib/bpi/static</outputDirectory> <destFileName>libpi4j.so</destFileName> </artifactItem> <artifactItem> <groupId>org.bidib.com.pi4j</groupId> <artifactId>pi4j-native</artifactId> <version>${project.version}</version> <classifier>bpi-dynamic</classifier> <type>so</type> <overWrite>true</overWrite> <outputDirectory>${project.build.directory}/lib/bpi/dynamic</outputDirectory> <destFileName>libpi4j.so</destFileName> </artifactItem> <!-- LIBPI4J for the Odroid platform --> <artifactItem> <groupId>org.bidib.com.pi4j</groupId> <artifactId>pi4j-native</artifactId> <version>${project.version}</version> <classifier>odroid-static</classifier> <type>so</type> <overWrite>true</overWrite> <outputDirectory>${project.build.directory}/lib/odroid/static</outputDirectory> <destFileName>libpi4j.so</destFileName> </artifactItem> <artifactItem> <groupId>org.bidib.com.pi4j</groupId> <artifactId>pi4j-native</artifactId> <version>${project.version}</version> <classifier>odroid-dynamic</classifier> <type>so</type> <overWrite>true</overWrite> <outputDirectory>${project.build.directory}/lib/odroid/dynamic</outputDirectory> <destFileName>libpi4j.so</destFileName> </artifactItem> <!-- LIBPI4J for the OrangePi platform --> <artifactItem> <groupId>org.bidib.com.pi4j</groupId> <artifactId>pi4j-native</artifactId> <version>${project.version}</version> <classifier>orangepi-static</classifier> <type>so</type> <overWrite>true</overWrite> <outputDirectory>${project.build.directory}/lib/orangepi/static</outputDirectory> <destFileName>libpi4j.so</destFileName> </artifactItem> <artifactItem> <groupId>org.bidib.com.pi4j</groupId> <artifactId>pi4j-native</artifactId> <version>${project.version}</version> <classifier>orangepi-dynamic</classifier> <type>so</type> <overWrite>true</overWrite> <outputDirectory>${project.build.directory}/lib/orangepi/dynamic</outputDirectory> <destFileName>libpi4j.so</destFileName> </artifactItem> <!-- LIBPI4J for the NanoPi platform --> <artifactItem> <groupId>org.bidib.com.pi4j</groupId> <artifactId>pi4j-native</artifactId> <version>${project.version}</version> <classifier>nanopi-static</classifier> <type>so</type> <overWrite>true</overWrite> <outputDirectory>${project.build.directory}/lib/nanopi/static</outputDirectory> <destFileName>libpi4j.so</destFileName> </artifactItem> <artifactItem> <groupId>org.bidib.com.pi4j</groupId> <artifactId>pi4j-native</artifactId> <version>${project.version}</version> <classifier>nanopi-dynamic</classifier> <type>so</type> <overWrite>true</overWrite> <outputDirectory>${project.build.directory}/lib/nanopi/dynamic</outputDirectory> <destFileName>libpi4j.so</destFileName> </artifactItem> </artifactItems> </configuration> </execution> </executions> </plugin> <!-- EMBED THE JNI NATIVE LIBRARY INSIDE THE JAR --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <executions> <execution> <id>embed-jni-native-resource</id> <phase>generate-resources</phase> <goals> <goal>add-resource</goal> </goals> <configuration> <resources> <resource> <directory>${project.build.directory}/lib</directory> <targetPath>lib</targetPath> </resource> </resources> </configuration> </execution> </executions> </plugin> <!-- OSGi BUNDLE --> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <configuration> <instructions> <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> <Bundle-Version>${project.version}</Bundle-Version> <Export-Package> com.pi4j.concurrent.*, com.pi4j.util.*, com.pi4j.jni.*, com.pi4j.wiringpi.*, com.pi4j.system.*, com.pi4j.temperature.*, com.pi4j.io.serial.*, com.pi4j.io.gpio.*, com.pi4j.io.i2c.*, com.pi4j.io.spi.*, com.pi4j.io.w1.*, com.pi4j.io.wdt.* </Export-Package> <Import-Package>!com.pi4j.*</Import-Package> </instructions> </configuration> <executions> <execution> <id>bundle-manifest</id> <phase>process-classes</phase> <goals> <goal>manifest</goal> </goals> </execution> </executions> </plugin> <!-- INCLUDE OSGi MANIFEST IN JAR --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> </archive> </configuration> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions> </plugin> <!-- OPTIONALLY DEPLOY THE FINAL JAR TO THE RASPBERRY PI --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <executions> <!-- copy the compiled JAR file to the Raspberry Pi platform platform --> <execution> <id>transfer-compiled-pi4j-jar</id> <phase>install</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpathref="maven.plugin.classpath" /> <if> <equals arg1="${pi4j.dev.transfer}" arg2="true" /> <then> <!-- ensure the target directory exists on the Raspberry Pi --> <sshexec host="${pi4j.dev.host}" port="${pi4j.dev.port}" username="${pi4j.dev.user}" password="${pi4j.dev.password}" trust="true" failonerror="false" verbose="true" command="mkdir --parents ${pi4j.dev.directory}" /> <!-- copy the JAR file to the Raspberry Pi --> <scp file="${project.build.directory}/${project.build.finalName}.jar" todir="${pi4j.dev.user}:${pi4j.dev.password}@${pi4j.dev.host}:${pi4j.dev.directory}" port="${pi4j.dev.port}" trust="true" verbose="true" failonerror="true"> </scp> </then> </if> </tasks> </configuration> </execution> </executions> <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> </plugins> </build> </project>