【问题标题】:Java build system optionsJava 构建系统选项
【发布时间】:2012-06-24 23:42:37
【问题描述】:

我目前正在以一种非常笨拙的方式构建桌面 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
  • 执行一些代码混淆

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

【问题讨论】:

    标签: java git build


    【解决方案1】:

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

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

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

    【讨论】:

    • 你也应该看看Apache Buildr。它使用 Maven 存储库并为您提供 Maven 的所有好处,但不会让您费尽心机地管理混乱的 XML。您可以改用 Ruby 编写构建过程的脚本。
    【解决方案2】:

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

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

    解决方案可能看起来像

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

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

    1. 从以前的版本中提取 jar。
    2. 将特定于操作系统的二进制文件发布到 FTP 站点。

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

      猜你喜欢
      • 2011-12-25
      • 2012-08-05
      • 1970-01-01
      • 1970-01-01
      • 2010-11-10
      • 1970-01-01
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      相关资源
      最近更新 更多