【问题标题】:Maven Jar signing and target rearrangementMaven Jar 签名和目标重排
【发布时间】:2011-09-21 13:34:37
【问题描述】:

我正在将基于 Ant 的项目转换为可由 Maven 构建。标准构建目前正在运行。我正在尝试迁移在原始 Ant 构建描述符中指定的其他构建目标。我们的项目可以部署为桌面应用程序或 Web Start 可启动客户端。您可以使用 dist 自然调用原始 Ant 文件,它只是构建项目但不为 web 启动做后期处理,还有一个专门的 JWS 目标调用 dist,然后进行 jar 签名和重新排列分发文件为可轻松部署到 Web 服务器。

我发现 Maven 有一个用于进行代码签名的 Jarsigner 插件。我的项目当前构建核心 jar,将所有工件依赖项复制到目标,为核心 jar 创建正确的清单文件,并将配置工件解压缩到 target/(这包含各种东西,如 XML 和属性文件)。但是我不知道如何在 Maven 描述符中添加以下附加步骤:

  • 签署所有 jar 文件(也包括外部依赖项),同时删除现有的签名。
  • 将生成的 jar 文件重新排列到不同的目录布局。我还需要为此配置编辑 XML 文件,并将它们打包到需要签名的配置 jar 中。

修改后的项目必须是可构建的标准方式。所以 Web Start 构建必须是可选的。我应该注意到我们正在使用 NetBeans 来构建/调试/分析应用程序。

我有点迷失如何使用 Maven 实现这些目标。有人可以提出一些建议,我应该如何前进?

【问题讨论】:

  • 我有一个想法,因为您已经有一个可以进行签名/重新排列的特定 ant 目标 JWS,您可以利用该部分并使用 mavne-ant-run 插件来执行该 ant 脚本作为您的一部分Maven 构建。
  • 我只是在万不得已的情况下才这样做。如果可能的话,我想以“Maven 方式”解决这个问题。也许我还没有看到,但我可以通过创建一个对核心项目具有依赖关系的新模块并在那里执行额外的(并且这种方式是可选的)步骤来做到这一点。

标签: java maven jar code-signing


【解决方案1】:

我已经通过这种方式解决了我的问题:

  • 我为 web 启动客户端配置创建了一个新的 jar 模块。在构建期间,Maven 仅将原始配置工件的那些部分解包到构建目录中,这些部分是 Web Start 所需的(您可以为依赖项解包插件指定过滤规则)。然后我使用 Maven XML 插件使用 XSLT 模板修改 XML 文件。最后,Maven 负责将所有这些打包到一个 Web 启动客户端配置工件中。

  • 我还为实际的 Web 启动客户端构建创建了一个仅 pom 模块。该项目没有经典的工件输出,因此只有 POM 安装到工件存储库。该模块对源代码(不包括原始配置)和 web start 客户端工件有依赖关系。我正在使用 Maven 的依赖项复制功能在目标目录中以正确的结构排列 jar 文件。最后,我使用 Maven jarsigner 对所有 jar 进行签名。

【讨论】:

    猜你喜欢
    • 2011-04-05
    • 2020-04-16
    • 2014-09-08
    • 2013-02-01
    • 1970-01-01
    • 2016-02-02
    • 2011-02-13
    • 2023-04-05
    • 2012-09-10
    相关资源
    最近更新 更多