加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Maven可以重新签署依赖项吗?

发布时间:2020-12-15 05:02:37 所属栏目:Java 来源:网络整理
导读:我正在使用maven-jarsigner-plugin来签署我的阴影超级罐.我确实需要在自己的jar中分发一些依赖项,并希望从Maven仓库中获取这些jar,清除它们的任何现有签名,并使用我自己的证书进行签名. 有没有Maven插件可以做到这一点,或者我会涉及一些Ant插件hackery? 解
我正在使用maven-jarsigner-plugin来签署我的阴影超级罐.我确实需要在自己的jar中分发一些依赖项,并希望从Maven仓库中获取这些jar,清除它们的任何现有签名,并使用我自己的证书进行签名.

有没有Maven插件可以做到这一点,或者我会涉及一些Ant插件hackery?

解决方法

结果maven-jarsigner-plugin可以使用它的removeExistingSignatures配置元素重新签名现有的jar.很简单!

我使用maven-dependency-plugin将工件复制到generate-resources阶段的.war项目中,然后在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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读