Как развернуть банку на Raspberry Pi 2 с помощью плагина Maven
У меня есть простой класс Java с использованием Pi4J, который содержит метод main. Я хочу собрать и развернуть его на Raspberry Pi. Я использую Java 8 на Windows 10, и моя IDE NetBeans 8.1. Если проект настроен на обычное (не Maven) Java-приложение и настроен для развертывания на Raspberry Pi с помощью конфигураций сборки NetBeans, как показаноВот, проект создаст обычный и FTP через jar, а затем запустит его без проблем. Я хотел бы сделать то же самое, но с использованием Maven. Проблема в том, что код, который выполняется, имеет код на C, родной для архитектуры ARM Pi и плагина Maven, который я использую, похоже, сначала запускает jar на моем локальном компьютере, в котором код C вылетает, вызывая исключение
SEVERE: невозможно загрузить [libpi4j.so], используя путь: [/lib/libpi4j.so] java.lang.IllegalArgumentException: путь должен быть абсолютным, но он найден: \ lib \ libpi4j.so в com.pi4j.util. NativeLibraryLoader.loadLibraryFromClasspath (NativeLibraryLoader.java:120) в com.pi4j.util.NativeLibraryLoader.load (NativeLibraryLoader.java:92) в com.pi4j.wiringpi.Gpio. (Gpio.java.4: at). gpio.RaspiGpioProvider. (RaspiGpioProvider.java:51) в com.pi4j.io.gpio.GpioFactory.getDefaultProvider (GpioFactory.java:106) в com.pi4j.io.gpio.impl.GpioControllerImpljljlj. в com.pi4j.io.gpio.GpioFactory.getInstance (GpioFactory.java:89) в com.hadronix.pi4jsample2.ControlGpioExample.main (ControlGpioExample.java:24)
Исключение в потоке "main" java.lang.UnsatisfiedLinkError: com.pi4j.wiringpi.Gpio.wiringPiSetup () Я в com.pi4j.wiringpi.Gpio.wiringPiSetup (собственный метод) в com.pi4j.io.gpio.RaspiGpioProvider. RaspiGpioProvider.java:51) на com.pi4j.io.gpio.GpioFactory.getDefaultProvider (GpioFactory.java:106) на com.pi4j.io.gpio.impl.GpioControllerImpl. (GpioControllerImpl.java:54: com: at. io.gpio.GpioFactory.getInstance (GpioFactory.java:89) в com.hadronix.pi4jsample2.ControlGpioExample.main (ControlGpioExample.java:24)
Если я просто сделаю чистую сборку, она будет хорошо работать и создаст флягу. Тем не менее, если я решу запустить сборку, то произойдет сбой. Это плагин Maven, который я использую, чтобы развернуть банку на Пи.
<!-- OPTIONALLY DEPLOY THE FINAL JAR TO THE RASPBERRY PI -->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<!-- copy the compiled JAR file to the Raspberry Pi platform platform -->
<execution>
<id>ControlGpioExample.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="${pi.transfer.dev}" arg2="true" />
<then>
<!-- ensure the target directory exists on the Raspberry Pi -->
<sshexec host="${pi.host.dev}" port="${pi.port.dev}" username="${pi.user.dev}"
password="${pi.password.dev}" trust="true" failonerror="false"
verbose="true" command="mkdir --parents ${pi.dirCopyTo.dev}" />
<!-- copy the JAR file to the Raspberry Pi -->
<scp
file="${project.build.directory}/${project.build.finalName}.jar"
todir="${pi.user.dev}:${pi.password.dev}@${pi.host.dev}:${pi.dirCopyTo.dev}"
port="${pi.port.dev}" 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>
Я пытаюсь выяснить, как изменить этот плагин, чтобы сначала не выполнять код на моей локальной машине. Я просто хочу, чтобы он предположил, что баночка построена, вставил ssh в удаленный Pi, скопировал банку и запустил ее там. Кроме того, если у кого-то есть совершенно лучший способ использования Maven, тогда я открыт для предложений. Любая помощь будет отличной!
Вот ссылки на то, что я использую в качестве ссылокссылка на сайт 1
Заранее спасибо.