从源代码构建 OR-Tools Java (Linux)

简介

本指南介绍了如何在 Linux 上通过源代码 OR 工具进行构建,并支持 Java。

除非您打算修改源代码或将第三方求解器与 OR-Tools 结合使用,否则我们建议您安装软件包

虽然这些说明可能也适用于其他 Linux 变体,但我们只在满足以下要求的计算机上对其进行了测试:

  • Alpine Edge 64 位 (x86_64)
  • Centos 7 LTS 64 位 (x86_64)
  • Debian SID 64 位 (x86_64)
  • Debian 11 (bullseye) 64 位 (x86_64)
  • Fedora 38 64 位 (x86_64)
  • Fedora 37 64 位 (x86_64)
  • OpenSuse Leap 64 位 (x86_64)
  • Ubuntu 23.10 64 位 (x86_64)
  • Ubuntu 22.04 LTS 64 位 (x86_64)
  • Ubuntu 20.04 LTS 64 位 (x86_64)

前提条件

以下部分介绍了安装 OR-Tools 的前提条件。

C++ 工具

如需安装 C++ 工具,请打开终端窗口并输入:

Alpine

apk add alpine-sdk linux-headers cmake lsb-release-minimal

Centos

sudo yum groupinstall -y 'Development Tools'
sudo yum install -y pkgconfig redhat-lsb-core

Debian

sudo apt update
sudo apt install -y build-essential cmake lsb-release

Fedora

sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ cmake redhat-lsb-core

Fedora

sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ cmake redhat-lsb-core

OpenSUSE

sudo zypper refresh
sudo zypper install -y git gcc11 gcc11-c++ lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

切换

如需安装 SWIG,请打开终端窗口并输入:

Alpine

apk add swig

Centos

sudo yum install -y swig

Debian

sudo apt install -y swig

Fedora

sudo dnf install -y swig

Fedora

sudo dnf install -y swig

OpenSUSE

sudo zypper install -y swig

Ubuntu

sudo apt install -y swig

Ubuntu

sudo apt install -y swig

Ubuntu

sudo apt install -y swig

Java JDK >= 8.0

要安装 Java JDK 8.0 版或更高版本,请打开终端窗口并输入:

Alpine

sudo apk add openjdk8
export JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk

Centos

sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

Debian

sudo apt install -y default-jdk
export JAVA_HOME=/usr/lib/jvm/default-java

Fedora

sudo dnf install -y java-openjdk java-openjdk-devel

Fedora

sudo dnf install -y java-openjdk java-openjdk-devel

OpenSUSE

sudo zypper install -y java-1_8_0-openjdk java-1_8_0-openjdk-devel

Ubuntu

sudo apt install -y default-jdk

Ubuntu

sudo apt install -y default-jdk

Ubuntu

sudo apt install -y default-jdk

Maven 3.3 或更高版本

如需安装 Maven 3.3 或更高版本,请打开终端窗口并输入:

Alpine

sudo apk add maven

Centos

sudo yum install -y maven

Debian

sudo apt install -y maven

Fedora

sudo dnf install -y maven

Fedora

sudo dnf install -y maven

OpenSUSE

sudo zypper install -y maven

Ubuntu

sudo apt install -y maven

Ubuntu

sudo apt install -y maven

Ubuntu

sudo apt install -y maven

您可以测试 Maven 是否已正确安装,并可以使用以下命令查找 Java:

mvn -v

下载源代码

GitHub 上有两个不同的 OR-Tools 源代码分支:stablemain

stable 分支已经过全面测试,应该能够在所有受支持的平台上正常运行。
main 分支是应用最新的更新和改进的地方;该分支比较新,但稳定性较差。

下载稳定的源代码

您可以通过以下任一方式获取 OR-Tools 的稳定源代码:

  • 输入以下命令来克隆 stable 分支:

    git clone https://github.com/google/or-tools
    
  • 点击 GitHub 中的 Clone or download 按钮,以压缩文件的形式下载最新版本。克隆或下载按钮的图片

下载主要源代码

如需从 main 分支检索源代码,请输入:

git clone -b main https://github.com/google/or-tools

下载先前版本

您可以通过以下任一方式获取以前版本的源代码:

  • GitHub 版本页面下载以前的版本。
  • 假设您已经(通过 git clone)创建了一个本地代码库,则可以使用 Git 标记检出特定的版本。例如,如需使用 v9.9 版本而不是 main 分支,请在本地代码库中输入以下命令:

    git fetch --all --tags --prune
    git checkout tags/v9.9 -v v9.9
    

配置构建

在构建 OR-Tools 之前,您需要配置 CMake 构建系统生成器。

打开终端并导航到解压缩文件的目录。 然后输入以下命令:

cmake -S . -B build -DBUILD_DEPS=ON -DBUILD_JAVA=ON

如需了解详情,请参阅 CMake 文档

使用 SCIP

从 v7.8 开始,SCIP 已集成,因此您无需手动安装。

使用 Gurobi

Gurobi 现已预先集成。需要时,OR-Tools 将在运行时在 MAC OS X 和 Windows 上的 Gurobi 安装程序的默认安装路径中搜索 Gurobi 共享库,或者使用 GUROBI_HOME 环境变量搜索 Gurobi 共享库。

使用可选的第三方 MIP 求解器

您还可以将 OR-Tools 与以下任一可选的第三方 MIP 求解器(默认情况下其支持处于停用状态)搭配使用:

如需了解详情,请参阅此文档

构建源代码

如需构建源代码,请打开终端并转到解压缩文件的目录。然后输入以下命令来编译 OR-Tools:

cmake --build build --config Release --target all -j -v

如需了解详情,请参阅 CMake 文档

测试源代码

您可以输入以下命令来检查一切是否运行正常:

cmake --build build --config Release --target test -v

这将运行 OR-Tools 的示例。如果所有示例都成功运行,您就可以开始使用 OR 工具了。

清理 build 文件

如果您需要重新安装 OR-Tools,请使用以下命令:

rm -r build

会移除所有已编译的依赖项。 这对于重置为干净状态非常有用。

然后重新输入以下命令:

cmake -S . -B build -DBUILD_DEPS=ON -DBUILD_JAVA=ON

cmake --build build --config Release --target all -j -v

在操作系统上安装 OR-Tools

您可以通过输入以下命令,在您的操作系统上安装 OR-Tools for Java:

cmake --build build --config Release --target install -v