配置Maven
首先设置好maven的conf下的setting.xml文件
打开idea创建一个空工程,打开file-setting-maven,将maven路径改为我们要使用的maven路径,“user setting file”改为我们的maven的conf下的setting.xml文件路径,本地仓库会自动根据setting.xml设置
编辑配置:
注意web使用tomcat之前,先在pom.xml中添加tomcat,关于pom.xml配置文件介绍如下:
<?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 http://maven.apache.org/maven-v4_0_0.xsd">
<!--指定pom的模板版本,直接默认即可-->
<modelVersion>4.0.0</modelVersion>
<!-- 打包方式,web工程打包为war,Java工程打包为jar-->
<packaging>war</packaging>
<!-- 组织ID-->
<groupId>com.eileen</groupId>
<!-- 项目ID-->
<artifactId>web01</artifactId>
<!-- 版本号:release代表完成版,SNAPSHOT代表开发板-->
<version>1.0-SNAPSHOT</version>
<!--设置当前工程的所有依赖-->
<dependencies>
<!-- 设置具体的依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<!-- 设置插件-->
<plugins>
<!-- 具体插件-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>80</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
依赖管理
依赖配置
依赖指的是当前项目运行所需的jar,一个项目可以设置多个依赖,以来设置格式如下:
依赖传递
依赖具有传递性:直接依赖(在当前项目中通过依赖配置建立的依赖关系)、间接依赖(被资源的资源如果依赖其他资源,当前项目简介依赖其他资源)
依赖传递冲突问题
路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
生命优先:当依赖在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
特殊优先:当同级配置了相同的资源的不同版本,后配置的覆盖先配置的
可选依赖
指对外隐藏当前所依赖的资源–不透明,格式如下(将“optional”设置为“true”,默认时“false”):
排除依赖
指的是主动断开依赖的资源(不需要),被排出的资源无需指定版本
依赖范围
依赖的jar默认情况下可以在任何地方使用,可以通过scope标签设定起作用范围。
作用范围:
主程序有效(main文件夹范围内)
测试程序范围有效(test文件夹范围内)
是否参与打包(package指令范围内)
依赖范围的传递性
带有依赖范围的资源在进行传递时,作用范围将会受到影响
生命周期与插件
项目构建生命周期
Maven对项目构建的生命周期划分为3套:
clean:清理工作
default:核心工作,例如变易、测试、打包、部署等
site:产生报告,发布站点等
clean生命周期:
pre-clean:执行一些需要在clean之前完成的工作
clean:移除所有上一次构建生成的文件
post-clean:执行一些需要在clean之后立刻完成的工作
default构建生命周期:
包含很多:如test(编译,编译项目的源代码)、test-compile(编译测试源码)、test(测试)、package(打包)、install(下载)
site构建生命周期:
pre-site:执行一些需要在生成站点文档之前完成的工作
site:生成项目的站点文档
post-site:执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy:将生成的站点文档部署到特定的服务器上
插件
插件与生命周期内的阶段绑定,在执行到对应的生命周期时执行对应的插件功能,默认maven在各个生命周期上绑定有预定的功能(也可以自己加入新的插件),通过插件可以自定义其他功能