Maven
Maven 是一个项目管理工具,它包含了一个项目对象模型 (POM:Project Object Model),一组标准集合
帮助程序员构建项目的工具,我们只需要告诉Maven需要哪些Jar 包,
它会帮助我们下载/提供 所有的Jar,极大提升开发效率
下载和配置
官网:https://maven.apache.org/download.cgi
点击Binary zip archive apache-maven-3.9.11-bin.zip(选择需要的版本)
解压到没有中文的文件夹下
添加环境变量,变量名MAVEN_HOME,变量值为解压路径
在Path里添加%MAVEN_HOME%\bin
mvn –v测试
找个位置新建repository文件夹存放jar包
从conf文件夹里复制setting.xml配置文件,将mirror和本地仓库地址改为
1 2 3 4 5 6 7 8 9 10
| <localRepository>D:\maven\repository</localRepository>
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url> http://maven.aliyun.com/nexus/content/groups/public/ </url> <mirrorOf>central</mirrorOf> </mirror>
|
IDEA中使用Maven
设置中找到Maven
修改Maven主路径为解压路径
修改用户设置文件为修改过的setting.xml
修改本地仓库为之前创建的repository文件夹
✨打开每个项目都要检查一下✨
概念
依赖管理
maven工程中不直接将 jar包导入到工程中,而是通过在 pom.xml 文件中添加所需jar包的坐标
Maven仓库类型
- 本地仓库
存放在本地服务器中,当运行项目的时候,maven会自动根据配置文件查找本地仓库,再从本地仓库中调用jar包使用。
- 远程仓库
当本地仓库中没有项目所需要的jar包时,那么maven会继续查找远程仓库,一般远程仓库指的是公司搭建的私有服务器,也叫私服;
当jar包在私服中查找到之后,maven会将jar包下载到本地仓库中,下次使用的时候就不用再去找远程仓库。
- 中央仓库
当远程仓库获取不到jar包时,就需要到中央仓库去查找,并下载在远程仓库中,本地仓库再从远程仓库中下载回来使用。
pom.xml
pom (Project Object Model) 是Maven项目的核心配置文件,用于管理项目的依赖、插件、构建配置等
2.x格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
| <?xml version="1.0" encoding="UTF-8"?> <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>org.example</groupId> <artifactId>maven_demo</artifactId> <version>0.0.1-SNAPSHOT</version>
<name>maven_demo</name> <description>maven_demo</description> <properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <spring-boot.version>2.6.13</spring-boot.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
<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> </configuration> </plugin>
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot.version}</version> <configuration> <mainClass>org.example.maven_demo.MavenDemoApplication</mainClass> <skip>true</skip> </configuration> <executions> <execution> <id>repackage</id> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
</project>
|
3.x格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| <?xml version="1.0" encoding="UTF-8"?> <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>
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.5.6</version> <relativePath/> </parent>
<groupId>com.xw</groupId> <artifactId>consultant</artifactId> <version>0.0.1-SNAPSHOT</version> <name>consultant</name> <description>consultant</description> <properties> <java.version>17</java.version> </properties>
<url/>
<licenses> <license/> </licenses>
<developers> <developer/> </developers>
<scm> <connection/> <developerConnection/> <tag/> <url/> </scm>
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
</project>
|
常用命令
清理项目
删除 target (编译出来的 class、jar 包)文件夹
编译代码
把.java文件编译成.class文件,用来检查代码有没有语法错误
运行单元测试
编译 + 测试,执行所有 @Test 测试方法
打包项目
编译 → 测试 → 打包(生成jar包)
1 2 3 4
| mvn package
mvn package -DskipTests
|
打包并安装到本地仓库
查看Maven版本