我该如何管理构建后的任务?

时间:2013-06-17 23:36:26

标签: maven ant build-process release-management launch4j

我有一个java应用程序。

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

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

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

  1. 使用适当的版本
  2. 更新launch4j配置xml文件
  3. 使用launch4j
  4. 将生成的jar包装在可执行文件中
  5. 将生成的EXE复制到包目录
  6. 将多个支持文件复制到包目录中
  7. 将包目录拉上
  8. 将包裹发送给我的测试人员。
  9. 最终,我将完成利用包目录构建安装程序的额外任务。

    我不知道maven或ant是正确的工具,用于自动执行剩余的6个任务,但看起来它们中的一个或两者的组合可能完成我需要的任务。

    我可能会编写一个批处理文件或一个简单的perl脚本来快速完成这些操作,而不是弄清楚如何执行这些操作,但我希望尽可能保持标准,以便我不承担额外的责任不断支持发布过程的黑客攻击。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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

  7. 这意味着Maven在正常构建期间可以处理您提到的所有步骤。这意味着最终你可以使用maven-release-plugin来生成一个包含所有上述步骤的完整版本,并生成所有希望的工件。