2.3. 使用 Maven Repository

2.3.1. 配置 JBoss EAP Maven 存储库

概述

有两种方法可以指示 Maven 在您的项目中使用 JBoss EAP Maven Repository:

使用 Maven 设置配置 JBoss EAP Maven 存储库

这是推荐的方法。与共享服务器上的存储库管理器或存储库一起使用的 Maven 设置提供更好的项目的控制和可管理性。设置还支持使用替代镜像将特定存储库的所有查找请求重定向到存储库管理器,而不更改项目文件。有关镜像的详情请参考 http://maven.apache.org/guides/mini/guide-mirror-settings.html

这种配置方法适用于所有 Maven 项目,只要 POM 文件不包含存储库配置。

本节论述了如何配置 Maven 设置。您可以配置 Maven 安装全局设置或用户的安装设置。

配置 Maven 设置文件

  1. 找到您的操作系统的 Maven settings.xml 文件。它通常位于 ${user.home}/.m2/ 目录中。

    • 对于 Linux 或 Mac,这是 ~/.m2/
    • 对于 Windows,这是 \Documents 和 Settings\.m2\ 或 \Users\.m2\
  2. 如果您找不到 settings.xml 文件,请将 ${user . home}/.m2/conf/ 目录中的 settings.xml 文件复制到 ${user.home}/.m2/ 目录中。
  3. 将以下 XML 复制到 settings.xml 文件的 <profiles> 元素 中。确定 JBoss EAP 存储库的 URL, 并将 JBOSS_EAP_REPOSITORY_URL 替换为此存储库。

    <!-- Configure the JBoss Enterprise Maven repository -->
    <profile>
      <id>jboss-enterprise-maven-repository</id>
      <repositories>
        <repository>
          <id>jboss-enterprise-maven-repository</id>
          <url>JBOSS_EAP_REPOSITORY_URL</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>jboss-enterprise-maven-repository</id>
          <url>JBOSS_EAP_REPOSITORY_URL</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>

    以下是访问在线 JBoss EAP Maven 存储库的示例配置:

    <!-- Configure the JBoss Enterprise Maven repository -->
    <profile>
      <id>jboss-enterprise-maven-repository</id>
      <repositories>
        <repository>
          <id>jboss-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>jboss-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>
  4. 将以下 XML 复制到 settings.xml 文件的 <activeProfiles> 元素 中。

    <activeProfile>jboss-enterprise-maven-repository</activeProfile>
  5. 如果在 Red Hat CodeReady Studio 运行时修改 settings.xml 文件,您必须刷新用户设置。

    1. 在菜单中,选择 WindowPreferences
    2. 在"首选项 "窗口中,展开 Maven ,然后选择"用户设置 "。
    3. 单击 Update Settings 按钮,以刷新 Red Hat CodeReady Studio 中的 Maven 用户设置。
重要

如果您的 Maven 存储库包含过时的工件,则构建或部署项目时可能会遇到以下 Maven 错误消息之一:

  • 缺少工件 ARTIFACT_NAME
  • [ERROR] 在项目 PROJECT_NAME 上执行目标失败; 无法解析 PROJECT_NAME的依赖项

要解决这个问题,请删除本地存储库的缓存版本,以强制下载最新的 Maven 工件。缓存的存储库位于此处: ${user.home}/.m2/repository/

使用 Project POM 配置 JBoss EAP Maven 存储库
警告

您应该避免使用这种配置方法,因为它会覆盖配置的项目的全局和用户 Maven 设置。

如果您决定使用项目 POM 文件配置存储库,您必须仔细规划。Transitively POM 是这类配置的问题,因为 Maven 必须查询外部存储库查找缺少的工件,这会减慢构建过程。它还可能导致您失去对工件来自哪里的控制。

注意

存储库的 URL 将取决于存储库所在的位置:在文件系统或 Web 服务器上。有关如何安装存储库的详情,请参考:安装 JBoss EAP Maven 存储库。以下是每个安装选项的示例:

文件系统
file:///path/to/repo/jboss-eap-maven-repository
Apache Web Server
http://intranet.acme.com/jboss-eap-maven-repository/
Nexus 存储库管理器
https://intranet.acme.com/nexus/content/repositories/jboss-eap-maven-repository

配置项目的 POM 文件

  1. 在文本编辑器中打开项目的 pom.xml 文件。
  2. 添加以下存储库配置:如果文件中已有 <repositories> 配置,请在其中添加 <repository> 元素。确保将 <url> 改为 实际的存储库位置。

    <repositories>
       <repository>
          <id>jboss-eap-repository-group</id>
          <name>JBoss EAP Maven Repository</name>
          <url>JBOSS_EAP_REPOSITORY_URL</url>
          <layout>default</layout>
          <releases>
             <enabled>true</enabled>
             <updatePolicy>never</updatePolicy>
          </releases>
          <snapshots>
             <enabled>true</enabled>
             <updatePolicy>never</updatePolicy>
          </snapshots>
       </repository>
    </repositories>
  3. 添加以下插件存储库配置:如果文件中已有 <pluginRepositories> 配置,请在其中添加 <pluginRepository> 元素。

    <pluginRepositories>
       <pluginRepository>
          <id>jboss-eap-repository-group</id>
          <name>JBoss EAP Maven Repository</name>
          <url>JBOSS_EAP_REPOSITORY_URL</url>
          <releases>
             <enabled>true</enabled>
          </releases>
          <snapshots>
             <enabled>true</enabled>
          </snapshots>
       </pluginRepository>
    </pluginRepositories>
确定 JBoss EAP 存储库的 URL

存储库 URL 取决于存储库所在的位置。您可以将 Maven 配置为使用以下任一存储库位置:

  • 要使用在线 JBoss EAP Maven 存储库,请指定以下 URL:https://maven.repository.redhat.com/ga/
  • 若要使用本地文件系统上安装的 JBoss EAP Maven 存储库,您必须下载存储库,然后使用本地文件路径作为 URL。例如: file:///path/to/repo/jboss-eap-7.3.0.GA-maven-repository/maven-repository/
  • 如果在 Apache Web 服务器上安装存储库,则存储库 URL 将类似如下:http://intranet.acme.com/jboss-eap-7.3.0.GA-maven-repository/maven-repository/
  • 如果您使用 Nexus 存储库管理器安装 JBoss EAP Maven 存储库,该 URL 将如下所示:https://intranet.acme.com/nexus/content/repositories/jboss-eap-7.3.0.GA-maven-repository/maven-repository/
注意

对于文件服务器上的存储库,可使用常用协议(如 http:// )访问远程存储库,如 HTTP 服务器或 file:// 上的存储库。