Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven jar签名器插件_Maven_Jar_Jarsigner - Fatal编程技术网

Maven jar签名器插件

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

我对jar签名器插件有问题

我在一个使用applet的遗留项目中,所有applet jar都需要签名

首先,我在每个applet项目中添加了jar签名器插件

但是我需要在applet中添加一个公共模块,所以我在这个项目中添加了jarsigner插件

我的web项目中有一个taskmaven依赖插件,它将已签名的jar复制到src/main/webapp/applet中

但是当我编译项目时,我得到了以下错误:

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] ------------------------------------------------------------------------