第 6 章 OptaPlanner 和 Quarkus 入门
您可以使用 https://code.quarkus.redhat.com 网站生成红帽构建的 OptaPlanner Quarkus Maven 项目,并自动配置要在应用程序中使用的扩展。然后您可以下载 Quarkus Maven 存储库,或将在线 Maven 存储库用于您的项目。
6.1. Apache Maven 和红帽构建的 Quarkus
Apache Maven 是 Java 应用程序开发中使用的分布式构建自动化工具,用于创建、管理和构建软件项目。Maven 使用名为 Project Object Model(POM)文件的标准配置文件来定义项目并管理构建流程。POM 文件描述了使用 XML 文件生成的项目打包和输出的模块和组件依赖项、构建顺序和目标。这可确保以正确、一致的方式构建项目。
Maven 存储库
Maven 存储库存储 Java 库、插件和其他构建构件。默认公共存储库是 Maven 2 Central Repository,但存储库可以是私有的,也可以是公司内部的存储库,以在开发团队之间共享通用的工件。也可从第三方获得存储库。
您可以将在线 Maven 存储库与 Quarkus 项目一起使用,也可以下载红帽构建的 Quarkus Maven 存储库。
Maven 插件
Maven 插件是 POM 文件的定义部分,可实现一个或多个目标。Quarkus 应用程序使用以下 Maven 插件:
-
Quarkus Maven 插件(
quarkus-maven-plugin):启用 Maven 创建 Quarkus 项目,支持 uber-JAR 文件的生成,并提供开发模式。 -
Maven Surefire 插件(
maven-surefire-plugin):在构建生命周期的测试阶段使用,用于在您的应用程序上执行单元测试。插件生成包含测试报告的文本和 XML 文件。
6.1.1. 为在线存储库配置 Maven settings.xml 文件
您可以通过配置用户 settings.xml 文件,在 Maven 项目中使用在线 Maven 存储库。这是推荐的方法。与共享服务器上的存储库管理器或存储库一起使用的 Maven 设置提供更好的项目控制和管理。
当您修改 Maven settings.xml 文件来配置存储库时,更改适用于所有 Maven 项目。
流程
在文本编辑器或集成开发环境(IDE)中打开 Maven
~/.m2/settings.xml文件。注意如果
~/.m2/目录中没有settings.xml文件,请将$MAVEN_HOME/.m2/conf/目录中的settings.xml文件复制到~/.m2/目录中。在
settings.xml文件的<profiles> 元素中添加以下行:<!-- Configure the Maven repository --> <profile> <id>red-hat-enterprise-maven-repository</id> <repositories> <repository> <id>red-hat-enterprise-maven-repository</id> <url>https://maven.repository.redhat.com/ga/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>red-hat-enterprise-maven-repository</id> <url>https://maven.repository.redhat.com/ga/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile>在
settings.xml文件的<activeProfiles> 元素中添加以下行,并保存文件。<activeProfile>red-hat-enterprise-maven-repository</activeProfile>
6.1.2. 下载并配置 Quarkus Maven 存储库
如果您不想使用在线 Maven 存储库,您可以下载并配置 Quarkus Maven 存储库,以使用 Maven 创建 Quarkus 应用。Quarkus Maven 存储库包含 Java 开发人员通常用来构建应用程序的许多要求。此流程描述了如何编辑 settings.xml 文件来配置 Quarkus Maven 存储库。
当您修改 Maven settings.xml 文件来配置存储库时,更改适用于所有 Maven 项目。
流程
- 从红帽客户门户的软件 下载页面 (需要登录)下载 Quarkus Maven 存储库 ZIP 文件。
- 展开下载的存档。
-
将目录更改到
~/.m2/目录,并在文本编辑器或集成开发环境(IDE)中打开 Mavensettings.xml文件。 将以下行添加到
settings.xml文件的 <profiles> 元素中,其中QUARKUS_MAVEN_REPOSITORY是您下载的 Quarkus Maven 存储库的路径。QUARKUS_MAVEN_REPOSITORY的格式必须是file://$PATH,如file:///home/userX/rh-quarkus-2.2.3.GA-maven-repository/maven-repository。<!-- Configure the Quarkus Maven repository --> <profile> <id>red-hat-enterprise-maven-repository</id> <repositories> <repository> <id>red-hat-enterprise-maven-repository</id> <url>QUARKUS_MAVEN_REPOSITORY</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>red-hat-enterprise-maven-repository</id> <url>QUARKUS_MAVEN_REPOSITORY</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile>在
settings.xml文件的<activeProfiles> 元素中添加以下行,并保存文件。<activeProfile>red-hat-enterprise-maven-repository</activeProfile>
如果您的 Maven 存储库包含过时的工件,则构建或部署项目时可能会遇到以下 Maven 错误消息之一,其中 ARTIFACT_NAME 是缺少的工件的名称,PROJECT_NAME 是您要构建的项目的名称:
-
缺少工件 PROJECT_NAME -
[ERROR] Failed to execute goal on project ARTIFACT_NAME; Could not resolve dependencies for PROJECT_NAME
要解决这个问题,请删除位于 ~/.m2/repository 目录中的本地存储库的缓存版本,以强制下载最新的 Maven 工件。