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



我有一个java应用程序

我可以运行Maven发布任务,它将为我做一些很好的事情:

  • 将版本号从1.0.0- snapshot更改为1.0.0
  • 将my pom中的版本号增加到1.0.1-SNAPSHOT
  • 在源代码控制中标记版本
  • 上传结果包到我的maven仓库

我想更进一步。我有一些构建后的步骤,我目前正在手工做。

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

最后我将有一个额外的任务,即利用包目录构建一个安装程序。

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

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

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

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

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

    在配置XML中放置一个占位符,并让maven在配置过程中替换它构建。

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

  3. 使用launch4j-maven-plugin创建可执行文件。
  4. 将生成的EXE复制到包目录

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

  5. 复制几个支持文件到包目录

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

  6. 压缩包目录

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

  7. 把这个包发给我的测试人员。

    您可以使用像Jenkins等的CI来发送最终邮件或

  8. 你可以去maven-changes-plugin查看一下。

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

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

  • Maven发布插件,除非它对SCM相关的过程不够灵活。如果使用SVN作为SCM,我会直接使用SVNKit(在自定义Maven插件中),如果灵活性是一个问题。Maven launch4j plugin.
  • Maven组件插件
  • Maven Ant运行插件和/或一个或多个内部Maven插件用于其余任务。

相关内容

  • 没有找到相关文章

最新更新