Maven  pom.xml与settings.xml详解

Maven pom.xml与settings.xml详解

1. pom.xml

1.1 意义

pom.xml 是 Maven 项目的 XML 形式的配置文件。它存储关于项目的信息,例如它的依赖项,它编译时的类路径,构建插件及其配置,开发者列表,许可证等。

1.2 样例配置

下面是一个标准的pom.xml的例子:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
          http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>My App</name>
  <description>My App Description</description>

  <dependencies>
    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>2.0</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

1.3 结构分析

  • project - 根元素,它是 pom.xml 文件的任何版本中必须的。
  • modelVersion - POM 模型的版本。当前版本为 4.0.0。
  • groupId - 表示项目所属的组织。例如,你的组织可能有一个部门叫做 IT,那么 groupId 就可以为 com.it
  • artifactId - 表示生成的构件的文件名。例如,如果你正在构建一个 JAR 文件,artifactId 就可以为 sample-jar
  • version - 表示构件的版本号。例如,1.0.0-SNAPSHOT
  • dependencies - 库依赖列表。
  • build - 由 Maven 使用的构建设置。
  • plugins - 能够扩展 Maven 构建生命周期的插件列表。

2. settings.xml

2.1 意义

settings.xml 是 Maven 的全局设置文件。它包括了 Maven 运行时的设置,如仓库位置,代理设置,开发者身份等。

2.2 样例配置

下面例子展示了一个settings.xml的基本配置:

<?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">
  <localRepository>/path/to/local/repo</localRepository>
    <profiles>
      <profile>
        <id>local</id>
        <repositories>
          <repository>
            <id>central</id>
            <url>http://central</url>
          </repository>
        </repositories>
        <pluginRepositories>
          <pluginRepository>
            <id>central</id>
            <url>http://central</url>
          </pluginRepository>
        </pluginRepositories>
      </profile>
    </profiles>
</settings>

2.3 结构分析

  • localRepository - 设置本地Maven仓库的地址。
  • profiles - 描述特定的部署环境。可以为不同的项目创建不同的profile,并为他们制定不同的repository,pluginRepository以及other settings。
  • profile - 包含一个或多个 repository 元素,用于描述该 profile 所使用的仓库地址。
  • repositories - 需要下载所需依赖的远程仓库地址。
  • pluginRepositories - 需要下载构建时所需插件的远程仓库地址。

另外,还有其他常用的设置可以在 settings.xml 中进行设置,例如代理服务器的设置、镜像仓库设置、开发者身份等。这里就不再一一列举了。

3. 总结

pom.xml 和 settings.xml 是 Maven 在代码管理中的两个核心配置文件,帮助我们更加高效的管理和构建项目。pom.xml 通过定义依赖及插件集中管理了项目所需依赖及插件,而settings.xml定义了 Maven 运行时的设置,帮助我们完善地管理开发过程中的存储和发布。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Maven  pom.xml与settings.xml详解 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • Java编程接口回调一般用法代码解析

    让我来为你详细讲解“Java编程接口回调一般用法代码解析”的攻略。 什么是Java编程接口回调 Java编程接口回调是一种常见的编程思想,它将一个方法作为参数传递给另一个方法,以使后者在适当的时候调用前者。这种思想可以被认为是一种事件驱动或翻转控制的编程范式,因为它允许调用者通知被调用者,而不是被调用者直接调用另一个方法。 Java编程接口回调的一般用法 J…

    Java 2023年5月23日
    00
  • Java发送post方法详解

    为了实现Java程序发送POST请求,需要使用Java API中的HttpURLConnection类。具体的步骤如下: 1.获取HttpURLConnection对象 HttpURLConnection是Java中实现HTTP协议的常用类。利用URL.openConnection()方法可以获取HttpURLConnection对象。 URL url = …

    Java 2023年5月26日
    00
  • Docker 容器虚拟化的实用技巧总结

    Docker 容器虚拟化的实用技巧总结 1. Docker 简介 Docker 是一个开源的应用容器引擎,可以方便地将应用程序打包成一个独立的容器,运行于任意的平台上。 2. Docker 容器的基本操作 2.1 容器的创建和启动 容器的创建和启动可以通过以下命令实现: $ docker run <image_name> <command&…

    Java 2023年6月15日
    00
  • Java中基于maven实现zxing二维码功能

    下面我将提供一个完整的攻略,教你如何在Java中基于maven实现zxing二维码功能。 1. 环境准备 首先需要安装Maven,同时在pom.xml中添加以下依赖: <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</ar…

    Java 2023年5月20日
    00
  • Java面试题之HashMap 的 hash 方法原理是什么

    HashMap 的 hash 方法原理是什么 在了解HashMap的原理之前, 我们先看看hash散列表是怎么工作的, 他的原理是什么。 散列表的原理是将关键字通过散列函数映射到固定的位置上, 并对原始值进行处理, 最终得到的值就是我们所说的哈希值, 即在HashMap中所表现出来的值。在JDK1.7之前,HashMap的内部实现方式是数组 + 链表,数组的…

    Java 2023年5月26日
    00
  • javascript面向对象程序设计实践常用知识点总结

    JavaScript面向对象程序设计实践常用知识点总结 作为一门现代前端开发的核心语言,JavaScript 语言已经成为了面向对象编程的主流语言之一。本文总结了一些 JavaScript 面向对象编程常用的知识点,以帮助读者更好地理解、掌握和应用 JavaScript 编程。下面,我们将分为以下几个方面进行讲解。 1. 基本概念 1.1 类和对象 Java…

    Java 2023年5月26日
    00
  • java常用数据流应用实例解析

    Java常用数据流应用实例解析 Java中的数据流用于操作输入和输出流,读取和写入数据。Java提供了多个数据流类来完成各种数据读写操作。本文将详细讲解Java常用数据流的使用方法并给出两个实例说明。 常用数据流 Java的常用数据流包括InputStream、OutputStream、Reader和Writer等,这些类都有其各自的子类。我们将分别介绍这些…

    Java 2023年5月26日
    00
  • 支持Java 14!Java开发工具IntelliJ IDEA 2020.1稳定版发布

    下面是关于“支持Java 14!Java开发工具IntelliJ IDEA 2020.1稳定版发布”的详细攻略: 什么是IntelliJ IDEA? IntelliJ IDEA是一款由JetBrains开发的Java和其他编程语言的集成开发环境(IDE)。它提供了强大的功能,如代码智能提示、错误检查、重构、版本控制等等,同时也支持许多其他开发技术和框架。In…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部