Maven基础:pom.xml文件、坐标、maven项目结构

本文详细解读了pom.xml的核心配置,包括groupId、artifactId和version的重要性,以及依赖管理的scope标签。介绍了Maven项目结构和GAV坐标。重点展示了如何使用变量简化版本管理,并演示了标签在项目配置中的实际应用。
摘要由CSDN通过智能技术生成

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>
	
	<!-- 1.公司或者组织域名倒序+项目名 -->
	<groupId>com.dancebyte.demo</groupId>
	<!-- 2.模块名 -->
	<artifactId>mvn-test</artifactId>
	<!-- 3.版本 -->
	<version>0.0.1-SNAPSHOT</version>
	
	<name>mvn-test</name>
	   <!-- 配置当前项目中,所依赖的其他maven项目(jar包) -->
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.13</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

groupId,该元素定义当前Maven项目隶属的实际项目
artifactId,该元素定义当前maven项目表示的具体子项目(模块)
version,该元素定义当前maven项目的具体版本

说明,在该文件中:
1、先定义了当前maven项目自己的三个坐标值
2、又声明了当前maven项目所依赖的另一个maven项目(junit)的三个坐标值
3、 标签表示依赖的意思
4、是可选的标签,用来指定这个依赖的作用范围默认值为compile
(1)compile,默认值,适用于所有阶段(开发、测试、部署、运行),jar包会一直存在所有阶段。
(2) provided,只在开发、测试阶段使用,目的是不让将来部署的容器和你本地仓库的jar包冲突,因为有些jar包在将来部署的服务器或者容器中是存在的,所以打包的就不需要把这些jar添加进来了,如servlet相关jar包。
(3) runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
(4) test,只在测试时使用,用于编译和运行测试代码。不会随项目发布,如JUnit相关jar包。
(5)system,类似provided,需要显式提供包含依赖的jar的路径,Maven不会在Repository中查找它。

在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 https://maven.apache.org/xsd/maven-4.0.0.xsd">  

	<modelVersion>4.0.0</modelVersion>
	<groupId>com.alibaba.invoke</groupId> 
	<artifactId>demo</artifactId> 
	<version>0.0.1-SNAPSHOT</version>  
	
<properties>        
	<!-- 这三个变量,是让maven默认自带的插件使用的 --> 
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 	
	<maven.compiler.source>1.8</maven.compiler.source>
	<maven.compiler.target>1.8</maven.compiler.target>
	
	<!-- 指定hello项目的版本(变量) -->
	<hello.version>0.0.1-SNAPSHOT</hello.version> 
</properties>  

	<dependencies>  
		<dependency> 
			<groupId>com.briup.demo</groupId> 
			<artifactId>hello</artifactId>            
			<!-- 使用上面定义的变量:${hello.version}就是0.0.1-SNAPSHOT--> 
			<version>${hello.version}</version>
	 	</dependency> 
	</dependencies>  
	
</project>

用变量表示版本号或者项目名字可以省下很多记版本号或者项目名等的功夫

坐标

简介

在maven中,每一个项目都有三个坐标(GAV),用来唯一标识这个项目

groupId:该元素定义当前maven项目隶属的实际项目
artifactId:该元素定义当前maven项目表示的具体子项目(模块)
version:该元素定义当前maven项目的具体版本

例如:

<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>4.13</version>
	<scope>test</scope>
</dependency>

假设这个maven项目的jar,在仓库中的位置是:F:\repository\junit\junit\4.13\junit-4.13.jar,可以看到坐标在仓库中对应的就是文件夹。

Maven结构

在Maven中,要求一个maven项目必须是固定的目录结构,如下在这里插入图片描述
分析:
project,项目的主目录,目录名表示项目名(必须)
src/main/java/存放项目中源代码的目录(必须)
src/main/resources存放项目中资源文件的目录(必须)
src/test/java/存放测试代码的目录(可选)
src/test/resources/存放测试代码资源文件的目录(可选)
pom.xml,maven项目的配置文件,里面是对maven项目信息的详细描述(必须)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值