第 2 章 在 JBoss EAP 中使用 Maven


2.1. 了解 Maven

2.1.1. 关于 Maven 存储库

Apache Maven 是 Java 应用程序开发中使用的分布式构建自动化工具,用于创建、管理和构建软件项目。Maven 使用名为 Project Object Model 或 POM 文件的标准配置文件来定义项目并管理构建流程。poms 描述模块和组件依赖项,使用 XML 文件描述生成的项目打包和输出的构建顺序和目标。这可确保以正确、一致的方式构建项目。

Maven 使用存储库可实现此目的。Maven 存储库存储 Java 库、插件和其他构建构件。默认公共存储库是 Maven 2 Central Repository,但存储库可以是私有和内部存储库,目标为在开发团队之间共享通用工件。也可从第三方获取存储库。JBoss EAP 包括一个 Maven 存储库,其中包含 Jakarta EE 开发人员通常用于在 JBoss EAP 上构建应用程序的许多要求。若要将项目配置为使用此存储库,请参阅配置 JBoss EAP Maven 存储库

有关 Maven 的更多信息,请参阅 Welcome to Apache Maven

如需有关 Maven 存储库的更多信息,请参阅 Apache Maven Project - 存储库简介

2.1.2. 关于 Maven POM 文件

Project Object Model 或 POM 文件是 Maven 用于构建项目的配置文件。这是一个 XML 文件,其中包含项目的信息以及如何构建项目,包括源位置、测试和目标目录的位置、项目依赖项、插件存储库及其可执行的目标。它还可以包含有关项目的其他详细信息,包括版本、描述、开发人员、邮件列表、许可证等。pom.xml 文件需要一些配置选项,并将默认为所有其他选项。

pom.xml 文件的 schema 可以在 http://maven.apache.org/maven-v4_0_0.xsd 找到。

有关 POM 文件的更多信息,请参阅 Apache Maven Project POM 参考

Maven POM 文件的最低要求

pom.xml 文件的最低要求如下:

  • 项目根目录
  • modelVersion
  • GroupId - 项目组的 ID
  • artifactId - 工件的 ID(项目)
  • Version - 指定组下的工件版本

示例:基本 pom.xml 文件

基本的 pom.xml 文件可能类似如下:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jboss.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1</version>
</project>

2.1.3. 关于 Maven 设置文件

Maven settings.xml 文件包含 Maven 的特定用户配置信息。它包含的信息不得通过 pom.xml 文件分发,如开发人员身份、代理信息、本地存储库位置,以及特定于用户的其他设置。

有两个位置可以找到 settings.xml

  • 在 Maven 安装中: 设置文件可以在 $M2_HOME/conf/ 目录中找到。这些设置称为 全局 设置。默认的 Maven 设置文件是可复制的模板,并用作用户设置文件的起点。
  • 在用户安装中: 设置文件可以在 ${user.home}/.m2/ 目录中找到。如果 Maven 和用户 settings.xml 文件都存在,则内容将合并。如果存在重叠,用户的 settings.xml 文件优先。

示例:Maven 设置文件

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <profiles>
    <!-- Configure the JBoss EAP Maven repository -->
    <profile>
      <id>jboss-eap-maven-repository</id>
      <repositories>
        <repository>
          <id>jboss-eap</id>
          <url>file:///path/to/repo/jboss-eap-7.3.0.GA-maven-repository/maven-repository</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>jboss-eap-maven-plugin-repository</id>
          <url>file:///path/to/repo/jboss-eap-7.3.0.GA-maven-repository/maven-repository</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <!-- Optionally, make the repository active by default -->
    <activeProfile>jboss-eap-maven-repository</activeProfile>
  </activeProfiles>
</settings>

settings.xml 文件的 schema 可在 http://maven.apache.org/xsd/settings-1.0.0.xsd 找到。

2.1.4. 关于 Maven Repository Manager

存储库管理器是一种可让您轻松管理 Maven 存储库的工具。存储库管理器在多个方面很有用:

  • 它们提供在您的组织和远程 Maven 存储库之间配置代理的功能。这带来了诸多优势,包括更快、更高效的部署,以及更高水平的控制由 Maven 下载的内容。
  • 它们为您自己的构件提供部署目的地,允许整个企业的不同开发团队相互协作。

有关 Maven 存储库管理器的更多信息,请参阅最佳实践 - 使用存储库管理器

常用的 Maven 存储库管理器
注意

在通常使用存储库管理器的企业环境中,Maven 应当使用此管理器查询所有项目的所有构件。由于 Maven 使用所有声明的存储库来查找缺少的工件,如果无法找到它查找的内容,它将尝试在存储库中 内置父级 POM 中定义的)中查找它。要覆盖此 中央 位置,您可以使用 central 添加定义,以便默认存储库 中央 现在是您的存储库管理器。这非常适用于已建立的项目,但对于清洁或"新"项目,这会导致问题,因为它会造成问题,因为它会造成对已建立的 依赖项

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.