0

maven-assembly-plugin から 2 つの JAR ファイルを生成するプログラムがあります。maven-jarsigner-plugin を使用して両方の jar に署名したいと考えています。基本的な jarsigner を適用すると、JARS の 1 つだけに署名します。アーカイブ ディレクトリ フィールドを追加すると、次のようになります。

<archiveDirectory>${project.basedir}/target</archiveDirectory>    

署名コマンドの一般的な「実行に失敗」するか、2 番目の jar に署名する際に .jar の名前を .jar.orig に変更できないために失敗します。jarを使用する/使用できる唯一のものは、ビルドプロセス自体です。他の誰かがこれを見たことがありますか?上記の「archiveDirectory」行を削除し、1 つの jar をビルドして、もう 1 つをコメントアウトすると、これは正常に機能します。

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4</version>
            <executions>
                <execution>
                    <id>build-first</id>
                    <configuration>
                        <appendAssemblyId>false</appendAssemblyId>
                        <archive>
                            <manifest>
                                <mainClass>my.class.Executive</mainClass>
                            </manifest>
                            <manifestEntries>
                                <Class-Path>.</Class-Path>
                            </manifestEntries>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <finalName>DaExecutive</finalName>
                    </configuration>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
                <execution>
                    <id>build-second</id>
                    <configuration>
                        <appendAssemblyId>false</appendAssemblyId>
                        <archive>
                            <manifest>
                                <mainClass>my.class.ExampleGUI</mainClass>
                            </manifest>
                            <manifestEntries>
                                <Class-Path>.</Class-Path>
                            </manifestEntries>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <finalName>ExampleAppGui</finalName>
                    </configuration>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jarsigner-plugin</artifactId>
            <version>1.4</version>
            <executions>
                <execution>
                    <id>sign</id>
                    <goals>
                        <goal>sign</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>

              <archiveDirectory>${project.basedir}/target</archiveDirectory>                   
                <keystore>${project.basedir}/myKeystore.jks</keystore>
                <storepass>pw</storepass>
                <alias>ABC</alias>
                <verify>false</verify>
            </configuration>
        </plugin>
    </plugins>
</build>

詳細なエラー出力は次のとおりです。

[DEBUG] Processing     C:\Users\atalak\Desktop\GitRepo\DataAdapter\target\ExampleAppGui.jar
[DEBUG] cmd.exe /X /C ""C:\Program Files\Java\jdk1.8.0_181\jre\..\bin\jarsigner.exe" -keystore C:\Users\atalak\Desktop\GitRepo\DataAdapter/myKeystore.jks -storepass ***** C:\Users\atalak\Desktop\GitRepo\DataAdapter\target\ExampleAppGui.jar key_2017"
[DEBUG] Executing: cmd.exe /X /C ""C:\Program Files\Java\jdk1.8.0_181\jre\..\bin\jarsigner.exe" -keystore C:\Users\atalak\Desktop\GitRepo\DataAdapter/myKeystore.jks -storepass ***** C:\Users\atalak\Desktop\GitRepo\DataAdapter\target\ExampleAppGui.jar key_2017"
[DEBUG] jar signed.
[DEBUG] 
[DEBUG] Warning: 
[DEBUG] The signer certificate will expire within six months.
[DEBUG] 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 certificate's expiration date (2019-03-15) or after any future revocation date.
[DEBUG] Processing C:\Users\atalak\Desktop\GitRepo\DataAdapter\target\DaExecutive.jar
[DEBUG] cmd.exe /X /C ""C:\Program Files\Java\jdk1.8.0_181\jre\..\bin\jarsigner.exe" -keystore C:\Users\atalak\Desktop\GitRepo\DataAdapter/myKeystore.jks -storepass ***** C:\Users\atalak\Desktop\GitRepo\DataAdapter\target\DaExecutive.jar key_2017"
[DEBUG] Executing: cmd.exe /X /C ""C:\Program Files\Java\jdk1.8.0_181\jre\..\bin\jarsigner.exe" -keystore C:\Users\atalak\Desktop\GitRepo\DataAdapter/myKeystore.jks -storepass ***** C:\Users\atalak\Desktop\GitRepo\DataAdapter\target\DaExecutive.jar key_2017"
[DEBUG] jarsigner: attempt to rename C:\Users\atalak\Desktop\GitRepo\DataAdapter\target\DaExecutive.jar to C:\Users\atalak\Desktop\GitRepo\DataAdapter\target\DaExecutive.jar.orig failed
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 36.631 s
[INFO] Finished at: 2018-10-22T12:29:33-04:00
[INFO] Final Memory: 28M/694M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-jarsigner-plugin:1.4:sign (sign) on project DataAdapter: Failed executing 'cmd.exe /X /C ""C:\Program Files\Java\jdk1.8.0_181\jre\..\bin\jarsigner.exe" -keystore C:\Users\atalak\Desktop\GitRepo\DataAdapter/myKeystore.jks -storepass ***** C:\Users\atalak\Desktop\GitRepo\DataAdapter\target\DaExecutive.jar key_2017"' - exitcode 1 -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-jarsigner-plugin:1.4:sign (sign) on project DataAdapter: Failed executing 'cmd.exe /X /C ""C:\Program Files\Java\jdk1.8.0_181\jre\..\bin\jarsigner.exe" -keystore C:\Users\atalak\Desktop\GitRepo\DataAdapter/myKeystore.jks -storepass ***** C:\Users\atalak\Desktop\GitRepo\DataAdapter\target\DaExecutive.jar key_2017"' - exitcode 1
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
    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:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
    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:498)
    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:\Program Files\Java\jdk1.8.0_181\jre\..\bin\jarsigner.exe" -keystore C:\Users\atalak\Desktop\GitRepo\DataAdapter/myKeystore.jks -storepass ***** C:\Users\atalak\Desktop\GitRepo\DataAdapter\target\DaExecutive.jar key_2017"' - exitcode 1
    at org.apache.maven.plugins.jarsigner.AbstractJarsignerMojo.processArchive(AbstractJarsignerMojo.java:515)
    at org.apache.maven.plugins.jarsigner.AbstractJarsignerMojo.execute(AbstractJarsignerMojo.java:343)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
    ... 20 more
[ERROR] 
[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
4

2 に答える 2