首页 > 解决方案 > 无效的签名文件 Maven

问题描述

由于这个错误,我一直在扯头发。我正在使用 Maven 获取项目的依赖项,我认为它是org.eclipse.paho.client.mqttv3 ,它在 Maven 拉取中具有ECLIPSE.RSA 和 ECLIPSE.SF签名文件。

我正在使用 IntelliJ 社区版 2016.2 和 Build Artificats 来尝试获取单个可执行 JAR 以在 PI 上使用(您可能已经从 com.pi4j lib 猜到了)。

我得到的错误是:

错误:发生 JNI 错误,请检查您的安装并重试线程“main”中的异常 java.lang.SecurityException:Manifest main 属性的签名文件摘要无效

我已经尝试了我发现无济于事的链接,但很可能是我在这里这里缺乏理解。

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,你为什么要创建一种自动化的酷方法来管理依赖关系,然后让它无法以任何友好的方式使用?

标签: javamaven

解决方案


推荐阅读