我一直在用这个错误撕掉我的头发。我正在使用Maven获取项目的依赖项,我相信它是 org.eclipse.paho.client.mqttv3 ,其中包含 ECLIPSE.RSA和ECLIPSE.SF maven pull中的签名文件。
我正在使用IntelliJ社区版2016.2和Build Artificats尝试获取单个可执行JAR以用于PI(正如您可能从com.pi4j lib中猜到的那样)。
我得到的错误是:
错误:发生了JNI错误,请检查您的安装和 再次尝试线程“main”中的异常java.lang.SecurityException: Manifest主要属性的签名文件摘要无效
我尝试过我发现的链接无济于事但很可能是我缺乏理解here和here.
的pom.xml:
<groupId>piGroup</groupId>
<artifactId>Pi4JTrigger</artifactId>
<version>1.0-SNAPSHOT</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>org.bouncycastle:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.futuredecisions.parkingpi</mainClass>
</transformer>
</transformers>
<shadedArtifactAttached>true</shadedArtifactAttached>
</configuration>
</execution>
</executions>
<repositories>
<repository>
<id>Eclipse Paho Repo</id>
<url>https://repo.eclipse.org/content/repositories/paho-releases/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.pi4j</groupId>
<artifactId>pi4j-core</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
</project>
如果你知道如何解决这个问题,请假设我是一个4岁的孩子。作为1,我没有留下任何头发和2,为什么你会创建一个自动酷的方式来管理依赖关系,然后让它无法以任何友好的方式使用?