一,介绍、安装
1、maven介绍
maven是一个Java世界中,构建工具。
核心功能:
(1) 管理依赖:
管理文件运行的顺序逻辑依赖关系。对配置文件,进行构建和编译。其也是在调用jdk,来进行编译打包工作。
(2) 打包
通过使用maven,把java代码构造成war包
或者jar包
。
jar包是一种特殊的压缩包,它是把各种.class文件放到了一起。
2、安装Maven
直接使用IDEA
软件内置的 maven
3、如何使用搭建idea
- 创建项目的时候,不选择java,而是选择Maven的方式来创建项目
- groupId:表示你所在的公司/组织
- Aetifactid:表示当前项目的名字
- Version:表示当前版本号
- 以上配置用途:当一个程序,要发布到maven的中央仓库上,这三个参数就是这个程序在中央仓库的重要标识
4、目录结构
/src/main/java 这个目录用于放java代码
/src/main/resources这个目录用于放一些依赖的资源
/src/test/java 这个目录用来放单元测试代码
/pom.xml 这个是maven项目的核心配置文件,Maven依赖什么,需要什么配置,都放在这个文件里
5、如何使用maven
右侧有一个 maven 的控制面板,点开Lifecycle:maven
是生命周期。
这些罗列的内容,其实都是可以通过 maven来操作的。
最常用的就是 package,他的功能就是打包,也不仅仅是打包,会执行上面的所有操作。
最终的打包结果,一般是一个 jar 或者 war。
6、maven管理依赖
下面以mysql(5.1.47版本)为例,下载并安装第三方库
第一步,去中央仓库找到mysql的驱动包
https://mvnrepository.com/search?q=mysql
进行查找对应版本的mysql的xml配置代码
第二步:直接复制maven标签下的xml配置,粘贴到根目录的pom.xml
里面新建的<dependencies></dependencies>
标签中。
注意:
1、<dependencies>
这个标签中,可以放多个<dependency>
标签,一个项目可以引入多个依赖。在初始创建下,没有这个依赖标签,需要手动创建一个引入后,就会自己去下载依赖了。
2、无论是 maven 还是其他的库,都是通过同样的操作,来引入的,只要把对应的 xml 片段(坐标)拷贝到pom.xml 文件中即可,就可以自动引入。
二、setting.xml 和pom.xml 配置
1、setting.xml
在setting.xml
中,配置资源拉取远程仓库,提高下载速度。依次为:阿里云,华为云,官方云(2个)
<mirror>
<id>nexus-aliyun</id)
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>>
<mirrorOf>central</mirrOf>
</mirror>
<mirror>
<id>huaweicloud</id>
<mirrorOf>*</mirrorOf>
<url>https://repo.huaweicloud.com/repository/maven/</url>
</mirror>
<mirror>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo.maven.org/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo2.maven.org/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
2、pom.xml
相关标签及说明:
modelVersion: 指定了 POM 模型版本,默认是 “4.0.0”。
groupId: 项目的组织或团队标识。
artifactId: 项目的唯一标识符,一个组织或团队内是唯一的。
version: 项目的版本号。
packaging: 打包方式,通常是 "jar"
,部署tomcat,部署改为"war"
。
name: 项目的展示名。
description: 项目的描述。
properties: 自定义属性。
dependencies: 项目依赖列表,
dependency:每个依赖可以包括 groupId, artifactId, version 等。
dependencyManagement: 用于管理项目依赖的版本,确保子项目之间的依赖版本一致。
build: 构建配置,包括插件配置、资源配置等。
reporting: 报告配置,用于配置如何生成项目报告。
repositories: 仓库配置,用于指定项目构建时使用的远程仓库。
pluginRepositories: 插件仓库配置,用于指定构建插件时使用的远程仓库。
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-project</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>My Project</name>
<description>A simple example project</description>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>