Java 将Bouncycastle安全提供程序添加到maven jar

Java 将Bouncycastle安全提供程序添加到maven jar,java,maven,bouncycastle,Java,Maven,Bouncycastle,大家好,我的社区 在尝试编译使用bouncycastle安全提供程序的maven项目时,我遇到以下错误:java.lang.SecurityException:JCE无法验证提供程序BC 我知道jar必须签名,因此我将其添加到pom.xml中以防止编译错误: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin&

大家好,我的社区

在尝试编译使用bouncycastle安全提供程序的maven项目时,我遇到以下错误:
java.lang.SecurityException:JCE无法验证提供程序BC
我知道jar必须签名,因此我将其添加到pom.xml中以防止编译错误:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.3</version>
        <configuration>
            <filters>
                <filter>
                    <artifact>*:*</artifact>
                    <excludes>
                        <exclude>META-INF/*.SF</exclude>
                        <exclude>META-INF/*.DSA</exclude>
                        <exclude>META-INF/*.RSA</exclude>
                    </excludes>
                </filter>
            </filters>
        </configuration>
        <executions>
            <execution>
                <phase>
                    package
                </phase>
                <goals>
                    <goal>shade</goal>
                </goals>
            </execution>
        </executions>
</plugin>

org.apache.maven.plugins
)我添加了以下内容:
Security.setProperty(“java.policy”,“unlimited”)并且我添加了具有以下内容的提供程序:
Security.addProvider(新的BouncyCastleProvider())
在我的公共空间里


不幸的是,这不起作用。对于如何实现上面链接的帖子中所示的东西,而不必为每个JRE单独实现它,您有什么建议吗?提前感谢您的帮助。

我从以下问题中找到了可执行打包器maven插件()的解决方案: 它


org.apache.maven.plugins
maven编译器插件
3.7.0
1.8
1.8
台币
可执行打包器maven插件
1.0.1
mh.cryptomail.cryptomail
打包可执行jar
org.apache.maven.plugins
maven jar插件
3.2.0
真的
mh.cryptomail.cryptomail

它会将所有jar复制到结果jar中而不做任何修改,但在启动时(大约15秒)会花费更长的时间,因为它必须注册一个自定义类加载器,但它可以工作

bouncycastle jar已由bouncycastle密钥签名,而不是您的密钥。bouncycastle jar必须是独立的。所以没有办法将其包含在可执行jar中?我不这么认为。
<plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>de.ntcomputer</groupId>
            <artifactId>executable-packer-maven-plugin</artifactId>
            <version>1.0.1</version>
            <configuration>
                <mainClass>mh.cryptomail.CryptoMail</mainClass>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>pack-executable-jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.2.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>mh.cryptomail.CryptoMail</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>