1.maven概念介绍:
maven是一款项目管理工具,可以帮助我们自动构建项目(也叫项目构建:编译、测试、打包、部署、运行的操作),可以帮助我们统一管理依赖(也叫依赖管理),可以统一项目结构。
2.maven的基本概念:
本地仓库:本质就是自己电脑上的一个文件夹,里面存储了我们平时自己使用的jar包
私服仓库:是远程仓库的一种,是在公司局域网内的一个仓库,局域网内的所有用户共享。
中央仓库:是远程仓库的一种,有maven团队维护,服务器在国外,访问很慢。
maven优先访问本地仓库,如果本地仓库有jar包,直接获取。如果本地仓库没有,并且没有配置私服仓库,那么直接从中央仓库获取jar包。如果配置了私服仓库,那么就会去私服仓库获取,如果私服仓库没有就去中央仓库获取。只要访问了中央仓库,jar包都会从中央仓库自动下载到私服仓库或者本地仓库,方便下一次使用。
本地仓库-------->私服仓库--------->中央仓库
2.在maven的settings.xml中配置全局jdk1.8插件(在profiles标签配置)
<profile>
<!-- 定义的编译器插件 ID,全局唯一 -->
<id>jdk-1.8</id>
<!-- 插件标记,activeByDefault 默认编译器,jdk提供编译器版本 -->
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<!-- 配置信息 source-源信息,target-字节码信息,compilerVersion-编译过程版本 -->
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
<maven.compiler.encoding>utf-8</maven.compiler.encoding>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</profile>
3.版本依赖:
当不需要版本依赖的某个组件时可以用exclusion标签进行排除:
有时候jar包在不同的编译阶段有着不同的需求,比如:servlet-api包在部署到环境时,是不需要这个包的,我们可以加上scope标签为provided,进行在打包的时候进行排除。
4.maven中的继承(在子工程中声明其父工程坐标与对应的位置 )
<!--定义该工程的父工程-->
<parent>
<groupId>com.fuyang</groupId>
<artifactId>monntor</artifactId>
<version>2.0-SNAPSHOT</version>
</parent>
在父工程中使用dependencyManagement标签锁定依赖的版本
<!--声明此处进行依赖管理-->
<dependencyManagement>
<!--具体的依赖-->
<dependencies>
<!--spring环境-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
<dependencies>
<dependencyManagement>在子工程中定义依赖关系,无需声明依赖版本,版本参照父工程中依赖的版本
<dependencies>
<!--spring环境-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
</dependencies>
5.定义属性标签properties(同于定义变量,方便统一维护 )
<!--定义自定义属性-->
<properties>
<spring.version>5.1.9.RELEASE</spring.version>
<mybatis.spring.version>2.0.3</mybatis.spring.version>
<druid.version>1.1.21</druid.version>
<mysql.version>5.1.47</mysql.version>
</properties>对应的版本依赖的版本就可以用变量的方式获取了。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
6.资源配置多文件维护,可以在properties标签中定义配置文件的变量(比如jdbc的配置信息)
【第一步】在任意配置文件中加载pom文件中定义的属性(properties标签)
<test.url>jdbc:mysql://localhost:3306/ssm_db</test.url>
【第二步】在properties属性文件中调用格式
${jdbc.url}
【第三步】开启配置文件加载pom属性(在build标签里面)
<!--配置资源文件对应的信息--> <resources> <resource> <!--设定配置文件对应的位置目录,支持使用属性动态设定路径--> <directory>${project.basedir}/src/main/resources</directory> <!--开启对配置文件的资源加载过滤--> <filtering>true</filtering> </resource> </resources>
7.在maven的settings.xml中配置多环境
<!--配置多环境-->
<profiles>
<!--开发环境-->
<profile>
<!--定义环境唯一id-->
<id>dev</id>
<!--定义该环境使用的属性-->
<properties>
<test.url>jdbc:mysql://localhost:3306/ssm_dev</test.url>
</properties>
<!--默认激活-->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile><!--测试环境-->
<profile>
<!--定义环境唯一id-->
<id>test</id>
<!--定义该环境使用的属性-->
<properties>
<test.url>jdbc:mysql://localhost:3306/ssm_test</test.url>
</properties>
<!--默认激活同dev-->
</profile><!--生产环境-->
<profile>
<!--定义环境唯一id-->
<id>pro</id>
<!--定义该环境使用的属性-->
<properties>
<test.url>jdbc:mysql://localhost:3306/ssm_pro</test.url>
</properties>
<!--默认激活同dev-->
</profile>
</profiles>
配置后启动或者打包的时候就可以勾选不同的环境了