Java构建系统选项

时间:2012-06-24 12:51:45

标签: java git build

我目前正以非常笨拙的方式构建桌面java应用程序。该应用程序部署在Windows,Mac和Linux上。这是我的构建过程:

在Windows上:

  • 更新本地存储库
  • 启动Eclipse
  • 刷新项目
  • 双击.jardesc文件以生成可执行jar文件
  • 将可执行jar提交给源代码管理
  • 打开.nsi脚本并单击构建按钮(我安装了NSSI插件)以生成.exe安装程序
  • 将安装程序上传到ftp服务器以发布

在Mac上:

  • 更新本地存储库
  • 运行shell脚本以使用源代码管理中的.jar生成.dmg文件
  • 上传到ftp服务器以发布

在Linux上:

  • 更新本地存储库
  • 运行shell脚本以使用源代码管理中的.jar生成.deb文件
  • 上传到ftp服务器以发布

我还想在将来的构建中包含一些额外的步骤,例如:

  • 设置构建日期
  • 设置HEAD git commit-id
  • 执行一些代码混淆

有关如何简化和加快此过程的任何建议吗?

3 个答案:

答案 0 :(得分:3)

如果你认真对待一个好的构建系统,那么我建议学习并使用Maven,它提供:

  • 基于声明性项目定义(pom.xml)的综合项目构建生命周期管理
  • 我希望能够处理您需要的所有特定构建步骤的大量插件
  • 与Eclipse的良好集成
  • 完全依赖关系管理(包括自动解析和依赖关系下载)

这不适合胆小的人(Maven是一个复杂的野兽),但从长远来看,这是一个很好的解决方案。

答案 1 :(得分:2)

第一步是在没有Eclipse的情况下完成所有工作。

您可能还想考虑使用类似Jenkins的内容来自动执行其中某些操作。你仍然需要构建脚本。

解决方案可能看起来像

  1. 更新存储库。
  2. Jenkins检测到更新并构建jar。
  3. Jenkins将罐子保存到某个地方。
  4. 然后,您可以为每个操作系统分别构建,也可以在Jenkins中运行。这些可以在成功完成第一次构建时自动触发。这些都是:

    1. 从上一个版本中拿起jar。
    2. 将特定于操作系统的二进制文件发布到FTP站点。
    3. Ant是一个好的开始,但您可能还需要查看Apache IvyMaven,因为这些将有助于管理您的构建输出和依赖项。

答案 2 :(得分:1)

你应该看看Ant:https://ant.apache.org/

  

Apache Ant是一个Java库和命令行工具,其任务是将构建文件中描述的进程作为目标和扩展点相互依赖。 Ant的主要已知用法是构建Java应用程序。

此外,还有一长串构建系统:https://en.wikipedia.org/wiki/List_of_build_automation_software