3

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

在 Windows 上:

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

在 Mac 上:

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

在 Linux 上:

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

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

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

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

4

3 回答 3

3

如果您对拥有一个良好的构建系统是认真的,那么我建议您学习和使用Maven,它提供:

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

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

于 2012-06-24T15:42:37.190 回答
2

第一步是在没有 Eclipse 的情况下构建所有内容。

您可能还想考虑使用像Jenkins这样的东西来自动化其中的一些。您仍然需要构建脚本。

解决方案可能看起来像

  1. 更新存储库。
  2. Jenkins 检测到更新并构建 jar。
  3. 詹金斯将罐子保存到某个位置。

然后,您可以为每个操作系统分别构建,也可以在 Jenkins 中运行。这些可以在第一次构建成功完成时自动触发。这些将分别:

  1. 从以前的构建中拿起罐子。
  2. 将操作系统特定的二进制文件发布到 FTP 站点。

Ant是一个好的开始,但您可能还想查看Apache IvyMaven,因为它们将有助于管理您的构建输出和依赖项。

于 2012-06-24T15:37:16.553 回答
1

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

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

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

于 2012-06-24T12:55:20.377 回答