目录
- Maven
- 简介
- Maven是什么
- Maven下载安装
- Maven使用
- Maven规定了一套默认的项目格式
- 创建第一个Maven项目
- Maven仓库
- Maven常用命令
- Maven作用范围(scope值)
- Maven创建Web工程
- 注意事项
- tomcat插件
- 简介
Maven
简介
Maven是什么
- Maven是基于项目对象模型(POM,project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具
- 通过pom.xml文件的配置获取jar包,而不用手动去添加jar包
- 合理叙述项目间的依赖关系
Maven下载安装
http://maven.apache.org/download.cgi
安装
直接解压就可以
目录结构
bin
包含了Maven的运行脚本文件
boot
Maven的依赖的类加载器
conf
Maven的全局配置文件(settings.xml),定制Maven的运行行为
D:\java\mavenRepository
把D:\java\mavenRepository作为本地仓库的路径,可以通过核心配置文件来改
lib
依赖jar包
maven环境变量配置
配置的目的
想要在任何地方都能够运行mvn命令
配置两个一个Home 一个home/bin
变量名:MAVEN_HOME
变量值:D:\java\apache-maven-3.5.4
变量名:Path
变量值:D:\java\apache-maven-3.5.4\bin
打开命令行输入mvn -v 查看结果
Maven使用
Maven规定了一套默认的项目格式
src/main/java
存放项目的.java文件
src/main/resources
存放项目资源文件,如spring、struts2配置文件,db.properties
src/main/webapp
存放jsp,css,image等文件
src/test/java
存放所有测试.java文件,如JUnit测试类
src/test/resources
测试资源文件
pom.xml
主要要写的maven配置文件
target
项目由maven自动输出位置
创建第一个Maven项目
- 确保idea安装了Maven插件
- 创建Maven工程
添加Maven依赖jar包(会自动把jar依赖到项目当中)
pom.xml
4.0.0 com.itlike SSMMavenPro 1.0 war SSMMavenPro Maven Webapp http://www.example.com UTF-8 1.8 1.8 5.0.7.RELEASE 3.4.6 junit junit 4.12 test org.projectlombok lombok 1.16.6 javax.servlet servlet-api 2.5 provided mysql mysql-connector-java 5.1.21 com.alibaba druid 1.0.14 commons-lang commons-lang 2.6 org.springframework spring-test ${org.springframework.version} test org.springframework spring-core ${org.springframework.version} org.springframework spring-context ${org.springframework.version} org.springframework spring-context-support ${org.springframework.version} org.springframework spring-expression ${org.springframework.version} org.springframework spring-jdbc ${org.springframework.version} org.springframework spring-tx ${org.springframework.version} org.springframework spring-web ${org.springframework.version} org.springframework spring-aop ${org.springframework.version} org.springframework spring-webmvc ${org.springframework.version} org.aspectj aspectjrt 1.7.4 org.aspectj aspectjweaver 1.7.4 cglib cglib 3.1 org.mybatis mybatis ${org.mybatis.version} org.mybatis mybatis-spring 1.3.0 com.fasterxml.jackson.core jackson-core 2.9.4 com.fasterxml.jackson.core jackson-databind 2.9.4 com.fasterxml.jackson.core jackson-annotations 2.9.4 org.slf4j slf4j-api 1.7.6 org.slf4j slf4j-log4j12 1.7.6 log4j log4j 1.2.17 commons-fileupload commons-fileupload 1.3.1 jstl jstl 1.2 taglibs standard 1.1.2 com.github.pagehelper pagehelper 4.1.4 SSMMavenPro org.mybatis.generator mybatis-generator-maven-plugin 1.3.2 true false mysql mysql-connector-java 5.1.21 maven-clean-plugin 3.1.0 maven-resources-plugin 3.0.2 maven-compiler-plugin 3.8.0 maven-surefire-plugin 2.22.1 maven-war-plugin 3.2.2 maven-install-plugin 2.5.2 maven-deploy-plugin 2.8.2
Maven仓库
- Maven所有的Jar包都是放到maven仓库当中
- 在项目当中是对仓库jar包的引用
Maven仓库
本地仓库
本地存放jar的目录
私服
私人搭建的服务器,一般在企业内部局域网使用
中央仓库
Maven内置了一个远程仓库的地址,它就是中央仓库
Maven找jar包的过程
- Maven查找引入jar包时, 会先到本地仓库当中查找,没有找到就会到私服中找,也没有就去到远程中央仓库查找.
- 找到后会下载到本地仓库,下次就不用到远程仓库查找了
- 最终都会把jar包下载到本地仓库
- Maven工程最终引用的都是本地的jar包
设置本地仓库目录地址
默认本地仓库
C:\Users\LE\.m2\repository
修改本地仓库
首先,把maven安装目录config中setting.xml复制一份到.m2文件夹(C:\Users\LE\.m2路径)下
其次,打开setting.xml修改本地仓库地址
D:\java\mavenRepository
阿里云镜像
alimaven
central
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
Jar包的坐标
- 组织groupId
- 项目artifactId
- 版本version
Maven常用命令
validate
确保当前配置和 POM 的内容是有效的
clean
删除target目录下及其目录下的所有内容
mvn compile
将java文件编译成二进制放到target目录当中
test
运行测试用例
package
打包工程
install
把maven打成的包发布到本地仓库当中
后一个命令执行时, 前面命令都会执行
命令
Maven作用范围(scope值)
pom.xml文件
org.springframework
spring-test
${org.springframework.version}
test
compile
默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。
打包的时候通常需要包含进去
test
依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行。
不会被打包,例如:junit
runtime
表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。
与compile相比,跳过了编译而已。
例如JDBC驱动,适用运行和测试阶段
provided
打包的时候可以不用包进去,别的设施会提供。
事实上该依赖理论上可以参与编译,测试,运行等周期。
相当于compile,但是打包阶段做了exclude操作
system
从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径
Maven创建Web工程
注意事项
- generating project in batch mode 很慢,是因为maven获取archetype-catalog.xml导致。
- 用浏览器打开http://repo1.maven.org/maven2/archetype-catalog.xml很慢。
- 解决方法: 在用maven创建项目时在properties中添加 archetypeCatalog=internal,让maven读取本地配置即可。
tomcat插件
org.apache.tomcat.maven
tomcat7-maven-plugin
2.2
8081
/