【问题标题】:Maven jar signer pluginMaven jar 签名者插件
【发布时间】:2014-09-08 03:02:01
【问题描述】:

我的 jar 签名插件有问题。

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

首先,我在每个小程序项目中添加了 jar-signer 插件。

但是我需要在小程序中添加一个通用模块,所以我在这个项目中添加了 jarsigner 插件。

我的 web 项目中有一个任务 maven-dependency-plugin,它将签名的 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-signer,只将 jar-signer 插件添加到 web-project 中,如下所示:

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

在这个目录中:${basedir}/src\main\webapp\applet 我有 8 个 jars 和插件签名 9jars,我们可以看到:

[INFO] Webapp assembled in [5206 msecs]
[INFO] Building war: d:\MarcoPolo\SVN\CASTOR_trunk\CTR_WEB\web\target\ctrweb-02.01.00.war
[INFO] [jarsigner:sign {execution: sign}]
[INFO] 9 archive(s) processed
[INFO] [jar:jar {execution: create-classes}]
[INFO] Building jar: d:\MarcoPolo\SVN\CASTOR_trunk\CTR_WEB\web\target\ctrweb-02.01.00-classes.jar
[INFO] [install:install {execution: default-install}]
[INFO] Installing d:\MarcoPolo\SVN\CASTOR_trunk\CTR_WEB\web\target\ctrweb-02.01.00.war to D:\Users\p
[INFO] Installing d:\MarcoPolo\SVN\CASTOR_trunk\CTR_WEB\web\target\ctrweb-02.01.00-classes.jar to D:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 minute 5 seconds
[INFO] Finished at: Thu Jul 17 11:38:19 CEST 2014
[INFO] Final Memory: 42M/142M
[INFO] ------------------------------------------------------------------------

如果我打开 ctrweb-02.01.00.war,我可以看到所有内容都已签名!但我有&lt;exclude&gt;**/*.war&lt;/exclude&gt;

我已经尝试过了

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/war :( 为什么他们不让我们选择做我们想做的事想要...如果有人有其他解决方案...谢谢
  • 我尝试使用分类器从我的项目中创建两个 jar,一个已签名,另一个未签名。在编译过程中,它总是使用未签名的 jar,而副本则使用签名的 jar,我认为它应该可以工作
  • 是的,它的工作!我生成了 2 个 jar,一个没有分类器,另一个带有分类器(签名),我的 jarsigner 插件使用标签归档仅对带有分类器签名的 jar 进行签名,在编译期间,使用没有分类器的 jar,并且将带有分类器的 jar 复制到小程序 webapp 目录。所以我解决了我所有的问题!

标签: maven jar jarsigner


【解决方案1】:

在 cmets 中回答:

我尝试使用分类器从我的项目中创建两个 jar,一个已签名 而另一个没有。并且在编译过程中它总是采用 未签名的 jar 和复制它使用签名的 jar,我认为它 应该工作 – Mançaux Pierre-Alexandre 2014 年 7 月 17 日 12:24

是的,它的工作!我生成 2 个 jar,一个没有分类器,另一个 使用分类器(已签名),我的 jarsigner 插件使用标签存档进行签名 只有带有分类器签名的jar,并且在编译期间,jar 使用不带分类器,将带分类器的jar复制到 小程序 webapp 目录。所以我解决了我所有的问题! – 曼索 皮埃尔-亚历山大 2014 年 7 月 17 日 14:14

【讨论】:

    猜你喜欢
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-24
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多