jarsigner无法执行目标

6
我正在使用Maven中的maven-jarsigner-plugin来签署多个jar文件,但是它失败了。
从pom.xml中删除jarsigner-maven-plugin将导致项目成功构建。所以这绝对是jarsigner的问题。
错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-jarsigner-plugin:1.3.2:sign (sign) on project com.company.example: 
Failed executing 'cmd.exe /X /C ""C:\Program Files\Java\jdk1.8.0_20\jre\..\bin\jarsigner.exe" -keystore ..\com.company.maven\KeyStore -storepass ***** -keypass *****
C:\Project\com.company.example\target\com.company.example-3.2.1-SNAPSHOT.jar Foo"' - exitcode 1 -> [Help 1]

pom.xml

<plugin>
         <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-jarsigner-plugin</artifactId>
             <version>1.3.2</version>
             <configuration>
              <keystore>..\com.company.maven\KeyStore</keystore>
              <storepass>abcd123</storepass>
              <alias>Foo</alias>
              <keypass>abcd123</keypass>
             </configuration>
             <executions>
              <execution>
               <id>sign</id>
               <goals>
                <goal>sign</goal>
               </goals>
              </execution>
             </executions>
</plugin>

手动执行该命令可以正常工作。
c:\my_project\com.company.example.maven>C:\Java\jdk1.8.0_20\jre\..\bin\jarsigner.exe -keystore ..\com.company.example.maven\KeyStore -storepass 1234ab -keypa
ss 1234ab C:\my_project\com.company.example.model\target\com.company.example.model-3.2.1-SNAPSHOT.jar Foo
jar signed.

Warning:
The signer certificate has expired.
No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not be able to validate this jar after the signer cert
ificate's expiration date (2014-10-22) or after any future revocation date.

任何帮助都将不胜感激。

编辑:问题出现在我的计算机上,但其他人的计算机上没有出现过,我还没有找到问题所在。

更详细的报告:

 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-jarsigner-plugin:1.3.2:sign (sign) on project com.example.project.model: Failed executing 'cmd.
    exe /X /C "C:\Java\jdk1.8.0_20\jre\..\bin\jarsigner.exe -keystore ..\com.example.project.maven\KeyStore -storepass ***** -keypass ***** C:\Developer\Ecl
    ipseWorkspaces\IDE\com.example.project.model\target\com.example.project.model-3.2.0-SNAPSHOT.jar Foo"' - exitcode 1 -> [Help 1]
    org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-jarsigner-plugin:1.3.2:sign (sign) on pr
    oject com.example.project.model: Failed executing 'cmd.exe /X /C "C:\Java\jdk1.8.0_20\jre\..\bin\jarsigner.exe -keystore ..\com.example.project.maven\KeyStore
    -storepass ***** -keypass ***** C:\Developer\EclipseWorkspaces\IDE\com.example.project.model\target\com.example.project.model-3.2.0-SNAPSHOT.jar Foo"' - exi
    tcode 1
            at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
            at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
            at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
            at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
            at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
            at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
            at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
            at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:347)
            at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:154)
            at org.apache.maven.cli.MavenCli.execute(MavenCli.java:582)
            at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
            at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:483)
            at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
            at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
            at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
            at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
    Caused by: org.apache.maven.plugin.MojoExecutionException: Failed executing 'cmd.exe /X /C "C:\Java\jdk1.8.0_20\jre\..\bin\jarsigner.exe -keystore ..\
    com.example.project.maven\KeyStore -storepass ***** -keypass ***** C:\Developer\EclipseWorkspaces\IDE\com.example.project.model\target\com.example.project.model
    -3.2.0-SNAPSHOT.jar foo"' - exitcode 1
            at org.apache.maven.plugins.jarsigner.AbstractJarsignerMojo.processArchive(AbstractJarsignerMojo.java:511)
            at org.apache.maven.plugins.jarsigner.AbstractJarsignerMojo.processArtifact(AbstractJarsignerMojo.java:427)
            at org.apache.maven.plugins.jarsigner.AbstractJarsignerMojo.execute(AbstractJarsignerMojo.java:278)
            at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
            at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
            ... 19 more
    [ERROR]
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
    [ERROR]
    [ERROR] After correcting the problems, you can resume the build with the command
    [ERROR]   mvn <goals> -rf :com.example.project.model
4个回答

3

我通过修复我签名的jar中的清单文件来解决了org.apache.maven.plugins:maven-jarsigner-plugin:1.3.2:sign (sign)目标执行失败的问题。

在签名失败时,我的清单文件CodeBase条目如下所示。

Codebase: example.com test1.example.com test2.example.com

            example.org test1.example.org test2.example.org

所有的代码库条目都应该在一行上。错误的格式是由于Eclipse的源代码格式化工具造成的。当我最后清理源代码格式时,Eclipse在<Codebase></Codebase>之间放置了不需要的换行符和制表符。一旦这些不需要的空白字符被移除,Maven构建就能够如期完成。

1
我也遇到了类似的错误,但当我检查我的清单格式 (内容如下) 时发现它已经被正确地格式化。请问还需要检查哪些方面? 清单版本: 1.0 构建者: P5294260 创建者: Apache Maven 3.6.2 构建Jdk: 1.8.0_231 - arjun99

1

我遇到了同样的问题。我只需要为文件 (testkeys.store) 添加扩展名即可解决。

  <alias>stathis</alias>
  <keystore>${project.basedir}\testkeys.store</keystore>
  <storepass>123456</storepass>
  <keypass>123456</keypass>

1
希望对某些人有用,我遇到了类似的问题。
在我的pom.xml文件中,我有一个称为的插件,结果发现由于某种原因,该插件需要在插件之后。但是更改后就像魔法一样工作了。
参考link使用此内容。

0

我曾经遇到过这个问题。我的问题是我打错了密钥库的名称。修正拼写错误解决了整个问题。我还必须在密钥库上包含扩展名。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接