私はmaven-jarsigner-plugin
、影付きの uber-jar に署名するために使用しています。ただし、いくつかの依存関係を独自の jar で配布する必要があり、これらの jar を Maven リポジトリから取得し、既存の署名をすべてクリアして、独自の証明書で署名したいと考えています。
これを行う Maven プラグインはありますか、それとも Ant プラグインのハッカーを使用しますか?
私はmaven-jarsigner-plugin
、影付きの uber-jar に署名するために使用しています。ただし、いくつかの依存関係を独自の jar で配布する必要があり、これらの jar を Maven リポジトリから取得し、既存の署名をすべてクリアして、独自の証明書で署名したいと考えています。
これを行う Maven プラグインはありますか、それとも Ant プラグインのハッカーを使用しますか?
config 要素を使用して、既存の jar に再maven-jarsigner-plugin
署名できることが判明しました。とても簡単!removeExistingSignatures
maven-dependency-plugin
フェーズでアーティファクトを .war プロジェクトにコピーしてから、フェーズgenerate-resources
で署名しますprocess-resources
。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy</id>
<phase>generate-resources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.lwjgl.lwjgl</groupId>
<artifactId>lwjgl-platform</artifactId>
<version>2.9.0</version>
<classifier>natives-osx</classifier>
<type>jar</type>
<overWrite>true</overWrite>
<outputDirectory>src/main/webapp/</outputDirectory>
<destFileName>lwjgl-platform-natives-osx.jar</destFileName>
</artifactItem>
</artifactItems>
<outputDirectory>src/main/webapp</outputDirectory>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jarsigner-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>sign</id>
<phase>process-resources</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
<configuration>
<keystore>${basedir}/path/to/my.keystore</keystore>
<alias>alias</alias>
<storepass>password</storepass>
<keypass>password</keypass>
<verbose>true</verbose>
<archiveDirectory>src/main/webapp/</archiveDirectory>
<processMainArtifact>false</processMainArtifact>
<removeExistingSignatures>true</removeExistingSignatures>
</configuration>
</plugin>
本当に良い答えではないことはわかっていますが、次の手順で解決策を試してみます。
maven-dependency-plugin
antrun
: <unzip>
MANIFEST.MF を除く /META-INF ディレクトリからすべてを削除し、ant タスク<jar>
を使用して再度署名します。<jarsign>
私が maven を使用して以来、私が見つけた主な問題は (ごく最近私は認めます)、事前定義されたパイプラインを通過することです。あなたはそれを呼び出します;)
使用したことはありませんが、webstart-maven-plugin は jar の署名と署名を解除できるようです。
http://mojo.codehaus.org/webstart/webstart-maven-plugin/unsign-mojo.html
この助けを願っています。