Maven
1.环境搭建
- 安装maven压缩包并且解压
- 添加maven环境变量
- 检验安装是否成功
2.本地仓库配置 Maven中央仓库配置
maven目录
打开conf目录下的settings.xml配置本地仓库和远程仓库。
本地仓库配置
<localRepository>D:\Enviroment\apache-maven-3.6.3\maven-repo</localRepository>
maven中央仓库配置:由于maven的中央仓库在国外,我就配置了maven的阿里云镜像仓库。
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
3.基本概念、基本命令学习
- mvn compile:编译源文件并下载需要的jar包,最后得到一个编译后的target文件夹
mvn clean:清理,会清理之前编译生成的target文件夹
mvn test:测试
mvn package:打包
在pom.xml文件中有一个packaging字段,决定的是打包的方式。此项目中使用的是jar。
执行打包命令后会在target文件夹中生成一个jar包。
mvn install:把包放在本地本地仓库中。这个仓库的路径是之前settings文件中本地仓库路径。
pom.xml文件中groupId为org.example,artifactId为FiberMaven。
4.Maven构建项目、Maven于Idea整合、Maven创建web工程
- 使用插件构建maven工程
mvn archetype:generate -DgroupId=org.example -DartifactId=mavenlearning
-DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -DinteractiveMode=false
groupIdh和artifactId有我们自己定义代表该项目的包所属位置。
archetypeArtifactId代表项目的类型,maven-archetype-quickstart代表普通的maven项目。
version代表项目的版本号。
下图为通过该命令创建的一个maven项目的项目结构。
- Idea整合maven
在创建新项目时选择maven就行了。可以选择创建空的maven项目,也可以选择其他类型的maven项目,包括webapp项目。
- 创建web工程
mvn archetype:generate -DgroupId=org.example -DartifactId=mavenlearning
-DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -DinteractiveMode=false
下图是web工程的结构。
pom.xml文件常用标签
- parent标签,指定该项目的父项目,springboot项目的pom.xml文件里面就有parent标签,其父项目包含了springboot依赖的版本。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
- properties标签,自定义标签,通常用来保存依赖包的版本号。
- dependences标签,dependency的父标签,一个dependency标签代表一个依赖包。
- exclude标签:去除某个依赖。
- buid标签:如何来编译及打包项目。
- plugins标签:代表插件,常用的插件有maven打包插件,mybatis逆向工程插件。
- resources标签:指定文件在打包时作为资源文件。
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.yml</include>
<include>**/*.properties</include>
<include>**/*.keystore</include>
<include>**/*.html</include>
</includes>
</resource>