第 12 章 OptaPlanner 和 Quarkus 入门
您可以使用 https://code.quarkus.redhat.com
网站生成红帽构建的 OptaPlanner Quarkus Maven 项目,并自动添加并配置要在应用程序中使用的扩展。然后您可以下载 Quarkus Maven 存储库,或使用您项目中的在线 Maven 存储库。
12.1. Apache Maven 和 Red Hat build of Quarkus
Apache Maven 是 Java 应用程序开发中使用的分布式构建自动化工具,用于创建、管理和构建软件项目。Maven 使用名为 Project Object Model(POM)文件的标准配置文件来定义项目并管理构建流程。POM 文件描述使用 XML 文件生成的项目打包和输出的模块和组件依赖关系、构建顺序和目标。这可确保以正确、一致的方式构建项目。
Maven 存储库
Maven 存储库存储 Java 库、插件和其他构建构件。默认公共存储库是 Maven 2 中央存储库,但存储库可以是专有仓库和内部的,以在开发团队之间共享常见工件。还可从第三方提供存储库。
您可以将在线 Maven 存储库与 Quarkus 项目一起使用,也可以下载红帽 Quarkus Maven 存储库构建。
Maven 插件
Maven 插件是定义实现一个或多个目标的 POM 文件的组成部分。Quarkus 应用程序使用以下 Maven 插件:
-
Quarkus Maven 插件(
quarkus-maven-plugin
): Enables Maven 创建 Quarkus 项目,支持生成 uber-JAR 文件,并提供开发模式。 -
Maven Surefire 插件(
maven-surefire-plugin
): 在构建生命周期的测试阶段用来对应用程序执行单元测试。插件会生成包含测试报告的文本和 XML 文件。
12.1.1. 为在线存储库配置 Maven settings.xml 文件
您可以通过配置用户 settings.xml
文件,将在线 Maven 存储库用于 Maven 项目。这是推荐的方法。与共享服务器上的存储库管理器或存储库一起使用的 Maven 设置可以提供更好的控制和管理项目。
当您通过修改 Maven settings.xml
文件来配置存储库时,更改会应用到所有 Maven 项目。
流程
在文本编辑器中打开 Maven
~/.m2/settings.xml
文件或集成开发环境(IDE)。注意如果
~/.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>
12.1.2. 下载并配置 Quarkus Maven 存储库
如果您不想使用在线 Maven 存储库,您可以下载并配置 Quarkus Maven 存储库,以使用 Maven 创建 Quarkus 应用程序。Quarkus Maven 存储库包含许多 Java 开发人员通常用来构建应用程序的要求。这个步骤描述了如何编辑 settings.xml
文件来配置 Quarkus Maven 存储库。
当您通过修改 Maven settings.xml
文件来配置存储库时,更改会应用到所有 Maven 项目。
流程
- 从红帽客户门户网站的 Software Downloads 页面(需要登录)下载 Quarkus Maven repository ZIP 文件。
- 展开下载的存档。
-
将目录改为
~/.m2/
目录,并在文本编辑器或集成开发环境(IDE)中打开 Mavensettings.xml
文件。 将以下行添加到
settings.xml
文件的<profiles
> 元素,其中QUARKUS_MAVEN_REPOSITORY
是您下载的 Quarkus Maven 存储库的路径。QUARKUS_MAVEN_REPOSITORY
的格式必须是file://$PATH
,如file:///home/userX/rh-quarkus-2.7.6.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 on project ARTIFACT_NAME; Could not resolve dependencies for PROJECT_NAME
要解决这个问题,删除位于 ~/.m2/repository
目录中的本地存储库的缓存版本,以强制下载最新的 Maven 工件。