Maven jar签名器插件
我对jar签名器插件有问题 我在一个使用applet的遗留项目中,所有applet jar都需要签名 首先,我在每个applet项目中添加了jar签名器插件 但是我需要在applet中添加一个公共模块,所以我在这个项目中添加了jarsigner插件 我的web项目中有一个taskmaven依赖插件,它将已签名的jar复制到src/main/webapp/applet中 但是当我编译项目时,我得到了以下错误:Maven jar签名器插件,maven,jar,jarsigner,Maven,Jar,Jarsigner,我对jar签名器插件有问题 我在一个使用applet的遗留项目中,所有applet jar都需要签名 首先,我在每个applet项目中添加了jar签名器插件 但是我需要在applet中添加一个公共模块,所以我在这个项目中添加了jarsigner插件 我的web项目中有一个taskmaven依赖插件,它将已签名的jar复制到src/main/webapp/applet中 但是当我编译项目时,我得到了以下错误: java.lang.SecurityException: class X signer
java.lang.SecurityException: class X signer information does not match signer information of other classes in the same package.
我认为这是因为在我的公共项目(现在已签名)中我有一些接口,而在我的webproject(未签名)中我有实现
我不想签署这个网络项目
所以我决定删除所有项目的所有jar签名者,只在web项目中添加jar签名者插件,如下所示:
<plugin>
<artifactId>maven-jarsigner-plugin</artifactId>
<executions>
<execution>
<id>sign</id>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
<configuration>
<archiveDirectory>${basedir}/src\main\webapp\applet</archiveDirectory>
<includes>
<include>**/*.jar</include>
</includes>
<excludes>
<exclude>**/*.war</exclude>
</excludes>
<keystore>${basedir}/src/main/resources/mykeystore.jks</keystore>
<alias>myalias</alias>
<storepass>mypassword</storepass>
<keypass>mypassword</keypass>
</configuration>
</plugin>
如果我打开ctrweb-02.01.00.war,我可以看到所有文件都已签名!但是我有***。战争
我已经试着去做了
mvn jarsigner:sign
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Castor - Web war
[INFO] task-segment: [jarsigner:sign]
[INFO] ------------------------------------------------------------------------
[INFO] [jarsigner:sign {execution: default-cli}]
[INFO] 8 archive(s) processed
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Thu Jul 17 11:48:52 CEST 2014
[INFO] Final Memory: 6M/15M
[INFO] ------------------------------------------------------------------------
只签了8个罐子
我只希望对applet目录中的jar进行签名,而不希望对其他目录中的jar/war进行签名
可能吗
谢谢在评论中回答:
我尝试用分类器从我的项目中创建两个jar,一个签名 另一个不是。在编写过程中,它总是 非签名的jar和它的副本使用签名的jar,我认为 应该有效——曼诺·皮埃尔·亚历山大2014年7月17日12:24
是的,它的工作!我生成了两个jar,一个没有分类器,另一个 使用分类器(签名),我的jarsigner插件使用标记存档进行签名 只有分类器已签名的jar,并且在编译期间,jar 使用不带分类器的jar,并将带分类器的jar复制到 小程序webapp目录。所以我解决了我所有的问题曼索 皮埃尔·亚历山大2014年7月17日14:14
我看到exclude标记并不影响插件的主要目标,它总是在目标目录中签署jar/war:(为什么他们不让我们选择做我们想做的事…如果有人有其他解决方案…谢谢我试着用分类器从我的项目中创建两个jar,一个签名,另一个不签名。在编译过程中,它总是使用未签名的jar,对于副本,它使用签名的jar,我认为它应该工作是的!我生成了两个jar,一个是hout分类器和另一个带分类器(签名)的jarsigner插件使用标记存档仅对带分类器签名的jar进行签名,在编译期间,使用不带分类器的jar,并将带分类器的jar复制到applet webapp目录。因此,我解决了所有问题!
mvn jarsigner:sign
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Castor - Web war
[INFO] task-segment: [jarsigner:sign]
[INFO] ------------------------------------------------------------------------
[INFO] [jarsigner:sign {execution: default-cli}]
[INFO] 8 archive(s) processed
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Thu Jul 17 11:48:52 CEST 2014
[INFO] Final Memory: 6M/15M
[INFO] ------------------------------------------------------------------------