ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Maven中的pom.xml文件
[打印本页]
作者:
商道如狼道
时间:
2024-7-23 03:46
标题:
Maven中的pom.xml文件
一、什么是pom.xml
pom.xml是Maven项目标焦点设置文件,它是 项目对象模型 - Project Object Model(POM)的缩写。它使用 XML 格式界说了项目标基本信息、依赖项、构建插件和任务等。使用pom.xml,我们可以轻松地管理项目标构建和依赖关系,让我们可以或许更专注于业务逻辑的开发。
二、pom.xml文件结构
pom.xml 文件通常的结构如下所示,主要用于界说 Maven 项目标设置信息和构建过程中所需的各种依赖和插件:
<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>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<packaging>...</packaging>
<!-- 项目依赖 -->
<dependencies>
<dependency>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<scope>...</scope>
</dependency>
<!-- 可以有多个依赖项 -->
</dependencies>
<!-- 构建配置 -->
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<plugins>
<plugin>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<!-- 插件配置 -->
</plugin>
<!-- 可以有多个插件 -->
</plugins>
</build>
<!-- 仓库配置 -->
<repositories>
<repository>
<id>...</id>
<url>...</url>
</repository>
<!-- 可以有多个仓库 -->
</repositories>
</project>
复制代码
详细解释
:
<modelVersion>: POM 模型的版本,目前是 4.0.0。
<groupId>: 项目构造或公司的唯一标识符。
<artifactId>: 项目标唯一标识符,通常是项目名称。
<version>: 项目标当前版本号。
<packaging>: 项目标打包方式,例如 jar、war 等。
<dependencies>: 项目依赖的外部库或模块。
<build>: Maven 构建过程的设置信息,包括源码目录、测试目录和插件设置。
<plugins>: 在构建过程中使用的 Maven 插件。
<repositories>: Maven 从中获取依赖项和插件的仓库列表。
1.dependency
与项目标依赖列表相干的标签最外层由 <dependencies>来囊括,内部包罗了各种具体的依赖
<dependency>,该标签用于指定一个依赖项,它包罗以下几个子标签
<groupId>:指定依赖项的groupId,项目标组名
<artifactId>:指定依赖项的artifactId,项目标唯一标识符
<version>:指定依赖项的版本号。
<scope>:指定依赖项在项目中的使用范围。
此中的 <scope>一样寻常包罗以下几种范围:常用的有compile、test、provided 和 runtime
compile:依赖库默认的 scope,表现该依赖库在编译、测试、运行时均必要使用。
provided:表现该依赖库只在编译和测试时必要使用,而在运行时已经被体系或者容器提供,所以不必要打包到最终的应用步伐中。
runtime:表现该依赖库只在运行时必要使用,而在编译和测试时则不必要。
test:表现该依赖库只在测试时必要使用,而在编译和运行时则不必要。
2.repository
固然,我们还能在pom文件中支持指定Maven仓库,纵然用 <repositories> 和 <repository>标签,
<repository>用于指定一个Maven仓库,它包罗以下几个子标签:
<id>:指定Maven仓库的ID。
<name>:指定Maven仓库的名称。
<url>:指定Maven仓库的URL
3.properties
properties 严酷来说,并不一定是项目自己的信息,而是人为设置的属性或者说宏,这个标签用来界说和管理项目中所必要的属性,其作用有以下几个:
同一管理项目中的常用属性,比如版本号、路径、插件版本等,方便同一修改和管理。
可以在设置过程中使用 ${…}占位符引用这些属性,使得设置更加灵活和便捷。
避免硬编码,提高代码的可维护性和可读性
比如说我们可以这么配
<properties>
<project.name>demo-project</project.name>
<project.version>1.0.0</project.version>
<jdk.version>1.8</jdk.version>
</properties>
....省略其余部分
<dependency>
<groupId>com.example.demo</groupId>
<artifactId>${project.name}-api</artifactId>
<version>${project.version}</version>
</dependency>
复制代码
4.parent
在 Maven 的 pom.xml 文件中,<parent> 元素是用来指定当前项目继续的父项目(Parent Project)的设置信息。这种设置方式被称为 “继续” 或者 “继续机制”,允许子项目继续父项目标设置,从而简化项目标管理和维护。
<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.myproject</groupId>
<artifactId>myproject-core</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<!-- 继承自父项目 -->
<parent>
<groupId>com.example</groupId>
<artifactId>parent-project</artifactId>
<version>1.0.0</version>
</parent>
<!-- 其他配置 -->
<dependencies>
<!-- 项目依赖 -->
</dependencies>
<build>
<!-- 构建配置 -->
</build>
<repositories>
<!-- 仓库配置 -->
</repositories>
</project>
复制代码
在这个例子中:
<parent> 元素中的 <groupId>、<artifactId> 和 <version> 指定了父项目标坐标信息。
当前项目(myproject-core)继续自 parent-project,因此会继续父项目中界说的基本设置,如版本管理、插件管理等。
在 <dependencies>、<build> 和 <repositories> 等部分,可以界说当前项目自己的特定设置,这些设置会与父项目标设置归并或覆盖,以形成最终的项目设置。
通过使用 <parent> 元素,可以避免在子项目中重复界说相同的设置信息,提高项目标一致性和可维护性。
三、 项目标构建设置
项目标构建设置信息,包括编译器版本、插件列表、源代码目录等
1.build
build用于界说项目标构建设置,包括源代码目录、资源目录、插件等,此中代码部分的设置如下
<project>
.... 省略其他部分
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
复制代码
2.plugins
plugins的作用是界说 Maven 插件, plugins 主要用于扩展 Maven 的功能,帮助开发人员更方便地构建、打包、发布项目。
maven-compiler-plugin
比方说,最常用的编译功能,我们可以在pom里面这么写
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<showWarnings>true</showWarnings>
<compilerArgs>
<arg>-Xlint:unchecked</arg>
<arg>-Xlint:deprecation</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
复制代码
各子标签的作用如下:
<source>:指定Java源代码的版本,例如1.8表现Java 8。
<target>:指定编译后的字节码版本,例如1.8表现Java 8。
<encoding>:指定源代码的编码格式。
<showWarnings>:是否表现编译警告信息,true表现表现,false表现不表现。
<compilerArgs>:可选参数,可以添加多个编译器参数,例如-Xlint选项用来启用编译器警告查抄。
如果我们按示例中设置,我们就指定了编译器的源和目标版本为1.8,当我们使用 mvn compile 命令的时候,这个插件将会编译我们的 Java 代码,并将编译后的 class 文件放置在 target 目录下。
四、pom.xml的使用
经过了上面的学习,不难发现,使用pom.xml可以轻松地管理项目标构建和依赖关系,其主要用法实在有三种:
添加依赖:在dependencies标签下添加依赖,包括groupId、artifactId、version、scope等信息。
修改打包方式:在packaging标签下修改项目标打包方式,通常是jar、war或pom。
设置插件:在build标签下设置插件,包括groupId、artifactId、version等信息。插件可以帮助我们处理处罚各种构建任务,比如编译代码、生成文档、打包文件等。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4