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中的do…while循环语句的使用方法

    详解Java中的do…while循环语句的使用方法 在Java中,do…while循环语句是常用的一种循环控制结构,用于在特定条件成立时重复执行某段代码,直到循环条件不再成立。 do…while循环语句的语法格式 do { // 待执行的代码块 } while (条件表达式); 其中,条件表达式可以是任何可以被转换为布尔类型的表达式,只有在该表达…

    Java 2023年5月26日
    00
  • Java创建对象之显示创建与隐式创建

    Java创建对象之显示创建与隐式创建 在Java语言中,创建对象有两种方式:显示创建和隐式创建。本文将对这两种方式进行详细讲解。 显示创建 1. 使用new关键字 使用new关键字创建对象是最常见的方式。new关键字会在堆内存中为对象分配空间,并返回对象的引用。示例如下: // 创建 String 对象 String str1 = new String(&q…

    Java 2023年5月26日
    00
  • Java实现飞机大战-连接数据库并把得分写入数据库

    Java实现飞机大战-连接数据库并把得分写入数据库的攻略如下: 第一步:建立数据库 创建一个数据库,可使用MySQL或其他数据库软件,此处以MySQL为例。 在该数据库下创建一个用户,拥有读写权限。 创建一个存储分数的数据表,可命名为score,包含两个字段,一个为id,一个为score。 示例代码如下: CREATE DATABASE games; GRA…

    Java 2023年5月20日
    00
  • 如何把JAR发布到maven中央仓库的几种方法

    下面是如何将JAR包发布到Maven中央仓库的几种方法的完整攻略: 方法一:使用Maven发布插件 首先,在你的项目中加入Maven发布插件: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <art…

    Java 2023年5月20日
    00
  • java的io操作(将字符串写入到txt文件中)

    下面我将详细讲解“Java的IO操作(将字符串写入到txt文件中)”的完整攻略。 IO操作简介 在Java中,IO(Input/Output)操作是非常重要的一个主题。对于Java开发者来说,IO操作是必不可少的。在Java中,提供了java.io包和java.nio包分别供我们进行IO操作。 其中,java.io包位于Java1.0版本中,提供了非常丰富的…

    Java 2023年5月19日
    00
  • SpringBoot利用自定义注解实现多数据源

    搭建多数据源环境 首先,我们需要在pom.xml中引入所需依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </depen…

    Java 2023年5月20日
    00
  • 浅谈javaSE 面向对象(Object类toString)

    浅谈JavaSE面向对象(Object类toString) 什么是面向对象? 面向对象(OOP)是一种计算机编程方法,它基于对象、类和封装等概念。在面向对象编程中,使用对象来表示现实世界的实体,并使用类来描述对象的属性和行为。封装则是指:将数据和方法组合成类并隐藏其实现细节的过程。 Object类和toString方法 在Java中,所有的对象都继承自Obj…

    Java 2023年5月26日
    00
  • Java之字节码以及优势案例讲解

    Java之字节码以及优势案例讲解 什么是Java字节码? Java字节码是Java源代码编译后得到的二进制字节码文件,其扩展名为.class,使用JVM(Java虚拟机)来运行。相比于源代码,Java字节码更加节省空间,并且可以跨平台运行。 Java字节码可以通过反编译工具获取到其源代码,但是由于编译后的代码进行了优化,所以反编译后的源代码可能不太容易阅读。…

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