Kommt immer der Fehler
[main] INFO com.pi4j.Pi4J - New auto context
[main] INFO com.pi4j.Pi4J - New context builder
[main] INFO com.pi4j.platform.impl.DefaultRuntimePlatforms - adding platform to managed platform map [id=raspberrypi; name=RaspberryPi Platform; priority=5; class=com.pi4j.plugin.raspberrypi.platform.RaspberryPiPlatform]
Exception in thread "main" com.pi4j.provider.exception.ProviderNotFoundException: Pi4J provider [pigpio-digital-output] could not be found. Please include this 'provider' JAR in the classpath.
at com.pi4j.provider.impl.DefaultRuntimeProviders.get(DefaultRuntimeProviders.java:238)
at com.pi4j.provider.impl.DefaultProviders.get(DefaultProviders.java:147)
at com.pi4j.provider.Providers.get(Providers.java:253)
at com.pi4j.context.Context.create(Context.java:316)
at com.pi4j.internal.IOCreator.create(IOCreator.java:58)
at com.pi4j.internal.IOCreator.create(IOCreator.java:96)
at com.pi4j.internal.IOCreator.create(IOCreator.java:176)
at neu.Gpio.main(Gpio.java:35)
Wie gesagt, bei der Version 1.4 und deren Examples ging es immer.
Benutze doch mal das Projekt von github was im link verlinkt ist.
Und baue es auch so auf mit den Anschlüssen wenn du keinen Button hast tuen es ja auch zwei Drähte. Für den test.
com.pi4j.provider.exception.ProviderNotFoundException: Pi4J provider [pigpio-digital-output] could not be found. Please include this 'provider' JAR in the classpath.
Vermutlich fehlen in der Pom Abhängigkeiten - schon in #61 wurde das aber klar gesagt. Daher wundert es mich wirklich sehr, dass man sich hier so extrem im Kreis dreht.
Aber es ist nicht nur de pom wichtig sondern auch die Frage: Was genau machst Du eigentlich?
Denn eine gute Möglichkeit ist auch, dass ein jar gebaut wird ohne Abhängigkeiten und dann nur das jar File kopiert wurde.. Aber das Thema hatten wir doch auch in diesem Therad doch auch schon meine ich.
OK, das Problem dürfte sein, dass Du zwei Plugins verwendest. Das sollte sich mit einer Konfiguration des shade-Plugins im POM beheben lassen. Oben in der XML müsstest Du dazu nach Zeile 95 (also innerhalb des plugin-Deklaration aber nach den executions) einfügen
Zum Hintergrund: Java bietet eine relativ einfache Möglichkeit für Plugins. Für diesen Zweck definiert die zu erweiternde Anwendung ein sog. Service Provider Interface, das vom Plugin implementiert werden muss. Das Plugin legt unter META-INF/services eine Datei mit dem vollqualifizierten Namen des Interface ab und trägt dort die Klasse ein, die das Interface implementiert. Problem ist jetzt: Du hast zwei Plugins in zwei JARs und damit zweimal die selbe Datei -> beim Zusammenfügen gewinnt eine, die andere ist weg. Der oben definierte Transformer des shade-Plugins soll dafür sorgen, dass die Dateien zusammengeführt werden.
Wenn ich es recht verstehe, gibt es das Raspberry-Plugin für die Plattform und das pigpio-Plugin für I/O. Interessanterweise enthält das Raspberry-Plugin auch das I/O-Plugin (I/O-Provider). Warum? Keine Ahnung, jedenfalls sind das einfach Fake-Klassen wie man im Quelltext sieht (https://github.com/Pi4J/pi4j-v2/tre...ain/java/com/pi4j/plugin/raspberrypi/provider).
Ja, aus Sicht von Maven ist das einfach eine zusätzliche Abhängigkeit: es sind einfach JARs, die dazugenommen werden. Aus Sicht von PI4J sind das Plugins. Bei plugins würde man im POM die Maven-Plugins angeben.