pom.xml

1.project

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" 
         xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  • xml:定义XML版本和编码。
  • project:根元素,定义了Maven项目。
    • xsi:schemaLocation:指定了XML Schema的位置。
    • xmlns:定义了命名空间。
  • modelVersion:指定POM模型的版本。

XML Schema 是一种用于定义 XML 文档结构和内容的语言。它提供了一种方法来描述 XML 文档的元素和属性的合法结构、数据类型和约束。XML Schema 由 W3C(World Wide Web Consortium)定义,是 XML DTD(Document Type Definition)的替代方案,提供了更强大的数据类型支持和更严格的验证规则。

⭕️ XML Schema 对你的项目和所使用的 Maven 依赖有以下几个方面的影响:

  1. POM 文件的验证:XML Schema 用于验证你的 pom.xml 文件的结构和内容是否符合 Maven 的规范。通过指定 xsi:schemaLocation,Maven 可以确保你的 POM 文件是正确的,并且符合 XML Schema 定义的规则。
  2. 依赖管理:XML Schema 确保你的依赖声明是正确的,包括 groupId、artifactId、version 等标签的使用。它帮助 Maven 解析和处理这些依赖,确保它们能够正确地下载和集成到你的项目中。
  3. 构建过程:在构建过程中,Maven 使用 XML Schema 来解析和验证 POM 文件中的构建配置。这包括插件配置、构建生命周期的定义等。确保这些配置是正确的,有助于避免构建错误。
  4. 扩展性和兼容性:XML Schema 提供了一个标准化的方式来定义和验证 XML 文档,这使得你的 POM 文件在不同的工具和环境中具有更好的兼容性和可扩展性。

2.modules

<modules>
  <module>apro</module>
  <module>bpro</module>
</modules>
  • modules:标签用于定义一个多模块项目的子模块。
    • 多模块项目允许你将一个大型项目拆分成多个子模块,每个子模块都有自己的 pom.xml 文件,但它们共享父项目的配置。
  • module:指定子模块的相对路径。
    • 每个子模块都需要一个 <module> 标签

3.scm

<scm>
  <connection>scm:git:git@github.xxx.com:projectname.git</connection>
  <developerConnection>scm:git:git@github.xxx.com:projectname.git</developerConnection>
  <url>https://github.xxx.com/projectname.git</url>
</scm>
  • scm:标签用于定义项目的源代码管理(Source Code Management)信息。它包含了项目的版本控制系统的相关信息,如连接 URL 和开发者连接 URL。
  • connection:指定只读的 SCM 连接 URL。
  • developerConnection:指定开发者使用的 SCM 连接 URL,通常是读写权限。
  • url:指定项目的浏览 URL。

4.parent

<parent>
    <groupId>parent_groupId</groupId>
    <artifactId>parent_artifactId</artifactId>
    <version>${revision}${name}${changelist}</version>
    <relativePath>..</relativePath>
</parent>
  • parent:定义了父POM,继承其配置。
  • groupId:父项目的组ID(就是项目路径)。
  • artifactId:父项目的工件ID(就是项目名)。
  • version:父项目的版本。
  • relativePath:父POM的相对路径(指定当前项目的 pom.xml 文件相对于父项目的 pom.xml 文件的路径,仅在此可用)

5.properties

<properties>
    <revision>0.0.1</revision>
    <name>-projectname</name>
    <changelist>-SNAPSHOT</changelist>
    <io.swagger.v3.annotations.version>2.2.9</io.swagger.v3.annotations.version>
    <testcontainers.version>1.19.6</testcontainers.version>
    <io.swagger.annotations.version>1.6.10</io.swagger.annotations.version>
    <swagger.plugin.version>2.1.2</swagger.plugin.version>
    <m2eclipse.wtp.contextRoot>/</m2eclipse.wtp.contextRoot>
</properties>
  • properties:定义了项目的属性。
  • revision、name、changelist:用于版本控制;如 0.0.1-raptorio-SNAPSHOT。
    • revision:表示项目的修订版本号,通常用于标识项目的主要版本。
    • name:表示项目的名称或标识符,通常用于区分不同的项目或模块。
    • changelist:表示项目的变更列表或快照版本,通常用于标识项目的开发或测试版本。
  • io.swagger.v3.annotations.version、testcontainers.version、io.swagger.annotations.version、swagger.plugin.version:定义了依赖的版本。
  • m2eclipse.wtp.contextRoot:Eclipse插件的配置。

changelist 通常用于标识项目的变更列表或快照版本。常见的值包括:

  1. -SNAPSHOT:表示这是一个快照版本,通常用于开发阶段。
  2. -RELEASE:表示这是一个发布版本。
  3. -BETA:表示这是一个测试版本。
  4. -ALPHA:表示这是一个早期测试版本。

6.dependencyManagement

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.json4s</groupId>
			<artifactId>json4s-jackson_2.12</artifactId>
			<version>3.5.3</version>
		</dependency>
	</dependencies>
</dependencyManagement>
  • dependencyManagement:用于管理依赖的版本。
  • dependencies:包含多个依赖。
    • dependency:定义了一个依赖。
      • groupId:依赖的组ID。
      • artifactId:依赖的工件ID。
      • version:依赖的版本。

dependencyManagement 在 Maven 项目中用于集中管理依赖版本和范围。它允许你在父 pom.xml 文件中定义依赖的版本和范围,这样子项目就不需要重复定义这些信息,只需引用依赖即可(子依赖依然声明了版本则以自己的为准)。


7.dependencies

<dependencies>
	<dependency>
		<groupId>org.json4s</groupId>
		<artifactId>json4s-jackson_2.12</artifactId>
	</dependency>
</dependencies>
  • dependencies:定义了项目的具体依赖。
  • dependency:定义了一个依赖。
    • groupId:依赖的组ID。
    • artifactId:依赖的工件ID。

8.build

<build>
	<plugins>
		<plugin>
        <!-- 插件配置省略 -->
		</plugin>
	</plugins>
</build>
  • build:定义了构建过程的配置。
  • plugins:包含多个插件。
    • plugin:定义了一个插件。

9.mvn 命令

命令/参数说明
mvn clean清理项目,删除 target 目录。
mvn compile编译项目的源代码。
mvn test运行项目的测试。
mvn package编译项目并打包成 JAR 或 WAR 文件。
mvn install将打包的 JAR 或 WAR 文件安装到本地 Maven 仓库。
mvn deploy将打包的 JAR 或 WAR 文件部署到远程 Maven 仓库。
mvn site生成项目的站点文档。
mvn validate验证项目是否正确且所有必要信息是否可用。
mvn verify运行任何集成测试,验证项目是否准备好进行安装和部署。
mvn dependency:tree显示项目的依赖树。
mvn help:describe -Dcmd=<command>显示指定命令的详细信息。
mvn versions:set -DnewVersion=<version>设置项目的新版本。
mvn release:prepare准备项目的发布。
mvn release:perform执行项目的发布。
-D<property>=<value>定义系统属性。
-P<profile_name>指定要激活的构建配置文件(profile)。
-f <path_to_pom>指定要使用的 pom.xml 文件。
-pl <module_name>指定要构建的模块列表。
-am-pl 一起使用,表示同时构建指定模块的依赖模块。
-o离线模式,不从远程仓库下载依赖。
-U强制更新快照版本的依赖。
-X启用调试输出。
-e显示完整的错误信息。
-B启用批处理模式,不需要用户交互。
-T <threads>启用多线程构建,指定线程数。
mvn exec:java运行一个 Java 程序。
mvn dependency:resolve解析并下载项目的所有依赖。
mvn dependency:analyze分析项目的依赖,找出未使用的依赖和未声明的依赖。
mvn dependency:purge-local-repository清除本地仓库中的特定依赖。
mvn archetype:generate根据原型生成一个新的 Maven 项目。
mvn scm:checkin将更改提交到 SCM(源代码管理)。
mvn scm:update从 SCM 更新项目。
mvn help:effective-pom显示项目的有效 POM,包含所有继承和聚合的配置。
mvn help:effective-settings显示 Maven 的有效设置,包括所有的继承和聚合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纯纯的小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值