第 8 章 Red Hat build of OptaPlanner on Red Hat build of Quarkus: 一个 IANA timetable 快速开始指南


本指南指导您使用 Red Hat build of OptaPlanner 智能智能(AI)创建 Red Hat build of Quarkus 应用程序的过程。您将构建 REST 应用程序,该应用程序针对领导和专业者进行了优化。

您的服务将通过 AI 遵循以下硬和软 调度限制,自动将附件实例分配给 TimeslotRoom 实例:

  • 空间最多可以同时有一个小时间。
  • 一个架构师可以同时参与一个小时间。
  • 每天最多可同时参与一个小时间。
  • 交互式人员更喜欢在单个房间参与。
  • 指导人员更喜欢参与较少的活动,并排解少量间的差距。

mathematly 认为是 NP 硬性问题。这意味着难以扩展。只需将所有可能的组合与括号一起进行迭代,在非平量数据集中,即使是超级计算器,则需要几十年的时间。AI 的约束程序(如红帽构建的 OptaPlanner)具有以合理的时间提供接近优化解决方案的高级算法。认为是合理的时间,这取决于您的问题的目标。

先决条件

  • 已安装 OpenJDK 11 或更高版本。Red Hat build of Open JDK 位于红帽客户门户网站中的 Software Downloads 页面中(需要登录)。
  • 已安装 Apache Maven 3.6 或更高版本。Maven 可从 Apache Maven 项目网站 获得。
  • 提供了 IDE,如 IntelliJ IDEA、VSCode、Ecli 或 NetBeans。

8.1. 创建 IANA timetable 项目

Evolution timetable 项目可让您使用 Apache Maven 和 Quarkus Maven 插件构建 OptaPlanner 和 Quarkus 应用程序来启动和运行。

注意

如果您希望,您可以创建一个 Quakus OptaPlanner 项目,如 第 7 章 OptaPlanner 和 Quarkus 入门 所述。

流程

  1. 在命令终端中,输入以下命令验证 Maven 是否使用 JDK 11,并且 Maven 版本是否为 3.6 或更高版本:

    mvn --version
    Copy to Clipboard Toggle word wrap
  2. 如果上述命令没有返回 JDK 11,请将 JDK 11 的路径添加到 PATH 环境变量中,然后再次输入上述命令。
  3. 要生成项目,请输入以下命令之一:

    注意

    不支持 Apple macOS 和 Microsoft Windows。

    • 如果您使用 Linux 或 Apple macOS,请输入以下命令:

      mvn io.quarkus:quarkus-maven-plugin:1.11.6.Final-redhat-00001:create \
          -DprojectGroupId=com.example \
          -DprojectArtifactId=optaplanner-quickstart  \
          -Dextensions="resteasy,resteasy-jackson,optaplanner-quarkus,optaplanner-quarkus-jackson" \
          -DplatformGroupId=com.redhat.quarkus \
          -DplatformVersion=1.11.6.Final-redhat-00001 \
          -DnoExamples
      Copy to Clipboard Toggle word wrap

      这个命令在 ./optaplanner-quickstart 目录中创建以下元素:

      • Maven 结构
      • src/main/docker中的 Dockerfile 文件示例
      • 应用程序配置文件

        Expand
        表 8.1. mvn io.quarkus:quarkus-maven-plugin:1.11.6.Final-redhat-00001:create 命令中使用的属性
        属性描述

        projectGroupId

        项目的组 ID。

        projectArtifactId

        项目的工件 ID。

        extensions

        用于此项目的 Quarkus 扩展列表。如需 Quarkus 扩展的完整列表,请在命令行中输入 mvn quarkus:list-extensions

        platformGroupId

        目标平台的组 ID。

        platformVersion

        要使用的平台版本。

        noExamples

        创建带有项目结构的项目,但没有测试或类。

        projectGroupIDprojectArtifactID 属性的值用于生成项目版本。默认项目版本为 1.0.0-SNAPSHOTplatformGroupIdplatformVersion 属性的值供 quarkus-universe-bom 用于管理项目依赖项。

  4. 创建目录结构后,在文本编辑器中打开 optaplanner-quickstart/pom.xml 文件,并检查文件的内容以确保它包含以下元素:

    <properties>
    	...
    	<quarkus-plugin.version>1.11.6.Final-redhat-00001</quarkus-plugin.version>
    	<quarkus.platform.artifact-id>quarkus-universe-bom</quarkus.platform.artifact-id>
    	<quarkus.platform.group-id>com.redhat.quarkus</quarkus.platform.group-id>
    	<quarkus.platform.version>1.11.6.Final-redhat-00001.Final-redhat-00001</quarkus.platform.version>
      </properties>
      <dependencyManagement>
    	<dependencies>
      	<dependency>
        	<groupId>${quarkus.platform.group-id}</groupId>
        	<artifactId>${quarkus.platform.artifact-id}</artifactId>
        	<version>${quarkus.platform.version}</version>
        	<type>pom</type>
        	<scope>import</scope>
      	</dependency>
    	</dependencies>
      </dependencyManagement>
      <dependencies>
    	<dependency>
      	<groupId>org.optaplanner</groupId>
      	<artifactId>optaplanner-quarkus</artifactId>
    	</dependency>
    	<dependency>
      	<groupId>org.optaplanner</groupId>
      	<artifactId>optaplanner-quarkus-jackson</artifactId>
    	</dependency>
    	<dependency>
      	<groupId>io.quarkus</groupId>
      	<artifactId>quarkus-resteasy-jackson</artifactId>
    	</dependency>
    	<dependency>
      	<groupId>io.quarkus</groupId>
      	<artifactId>quarkus-resteasy</artifactId>
    	</dependency>
    	<dependency>
      	<groupId>io.quarkus</groupId>
      	<artifactId>quarkus-arc</artifactId>
    	</dependency>
    	<dependency>
      	<groupId>io.quarkus</groupId>
      	<artifactId>quarkus-junit5</artifactId>
      	<scope>test</scope>
    	</dependency>
    Copy to Clipboard Toggle word wrap

    Quarkus BOM 导入到 pom.xml 文件中。因此,您不需要在 pom.xml 文件中列出单个 Quarkus 依赖项的版本。

  5. 查看 pom.xml 文件中的 quarkus-resteasy 依赖项。通过这个依赖项,您可以开发 REST 应用程序:

        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy</artifactId>
        </dependency>
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat