1

我有一个java应用程序。

我可以运行 Maven Release 任务,它会为我做一些好事:

  • 将版本号从 1.0.0-SNAPSHOT 更改为 1.0.0
  • 将我的 pom 中的版本号增加到 1.0.1-SNAPSHOT
  • 在源代码管理中标记发布
  • 将生成的包上传到我的 Maven 存储库

我想更进一步。我有一些我目前正在手动执行的后期构建步骤。

  1. 使用适当的版本更新 launch4j 配置 xml 文件
  2. 使用 launch4j 将生成的 jar 包装到可执行文件中
  3. 将生成的 EXE 复制到包目录中
  4. 将几个支持文件复制到包目录中
  5. 压缩包目录
  6. 将包通过电子邮件发送给我的测试人员。

最终,我将承担额外的任务,即利用包目录构建安装程序。

我不知道 maven 或 ant 是自动化我剩下的 6 个任务的正确工具,但看起来其中一个或两者的组合都可能完成我需要的任务。

我可能可以编写一个批处理文件或一个简单的 perl 脚本来完成这些事情,而不是弄清楚如何做这些事情,但我更愿意让事情尽可能标准,这样我就不会承担支持的额外责任永久破解发布过程。

在我看来,这些任务可能不是构建/发布的标准部分,但很常见,应该有一个最佳/最常见的实践来完成它们。

4

2 回答 2

1

如果我是你,我会尝试以下组合:

于 2013-06-18T00:17:45.843 回答
1

我建议在构建过程中使用 maven-assembly-plugin 和 maven-launch4j-plugin。

  1. 使用适当的版本更新 launch4j 配置 xml 文件

    将占位符放入配置 xml 并让 maven 在构建期间替换它。

  2. 使用 launch4j 将生成的 jar 包装到可执行文件中

    使用 launch4j-maven-plugin 创建可执行文件。

  3. 将生成的 EXE 复制到包目录中

    我建议将生成的工件放入存储库管理器而不是单独的文件夹中,因为在 Maven 中,所有工件都存储在存储库中。可能需要设置您自己的存储库管理器(Artifactory、Nexus、Archiva)。

  4. 将几个支持文件复制到包目录中

    将它们用作资源 ( src/main/resources),它们将被自动复制。

  5. 压缩包目录

    使用 maven-assembly-plugin 创建生成的 zip 文件。

  6. 将包通过电子邮件发送给我的测试人员。

    您可以使用Jenkins 等CI发送最终邮件,或者您可以查看可能是解决方案的 maven-changes-plugin 。

这意味着您提到的所有步骤都可以在通常的构建过程中由 Maven 处理。这意味着最终您可以使用 maven-release-plugin 生成包含上述所有步骤并生成所有希望的工件的完整版本。

于 2013-06-18T08:57:33.047 回答