框架学习之Mave(一)

MAVEN

(1)Maven解决的问题

1导入Jar包
2编译Java文件
3单元测试
4打包

(2)Maven管理依赖

传统web工程,jar包在项目中
maven开发的crm项目,jar包不在项目中,jar包放在jar包仓库中,通过jar包的坐标寻找jar包仓库中的jar包
依赖管理:就是maven工程对jar包的管理过程

(3)项目的一键构建=编译+测试+运行+打包+安装+部署

Maven中的pom.xml就是记录项目包的依赖
直接到项目目录,命令maven tomcat:run项目就可以运行

(4)仓库的种类和彼此的关系

maven的安装目录—>conf文件—>setting.xml中
Default: ${user.home}/.m2/repository设置了默认路径,系统盘找本地仓库
maven工程通过jar包的坐标到本地仓库(默认在系统盘)找jar包,如果本地仓库没有jar包则到中央仓库去下载
中央仓库放置了几乎所有的jar包,实际开发中用不了
为了不联网可以开发,创建公司自己用的仓库,远程仓库(私服)

仓库分三类本地仓库,远程仓库(私服),中央仓库
在默认情况下,启动一个maven项目会从本地仓库中找jar包,如果本地仓库没有,会从中央仓库联网下载jar包
在公司中,会从本地仓库找jar包,如果本地没有会从远程仓库找jar包,如果远程仓库也没有,可以本地上传,也可以从中央仓库下载
框架学习之Mave(一)

(5)maven标准目录结构

核心代码部分,打成jar包
配置文件部分,jar包之外
测试代码部分
测试配置文件

maven项目标准目录结构
src/main/java目录 核心代码部分
src/main/resources 配置文件部分
src/test/java 测试代码部分
src/test/resources 测试配置文件
src/main/webapp 页面资源,js,css,图片等等

(6)maven常用命令

a
mvn clean
发现项目目录下少了一个target目录,把编译好的项目中的信息删掉
b
mvn compile
发现项目目录下多了一个target目录
target目录有classes文件,文件中是src/mainjava/中的文件编译

c
mvn test
会将src/main/java和src/test/java编译

d
mvn package
把项目打包放在target目录下,在pom.xml中中设置打包类型,同时会将src/main/java和src/test/java编译

e
mvn install
把包安装到本地仓库
同时会将项目打包,同时会将src/main/java和src/test/java编译

(7)maven生命周期

编译 测试 打包 安装 发布
mvn compile mvn test mvn package mvn install mvn deploy
src/main/java src/main/java src/test/java

这五个命令是一个生命周期,默认生命周期,执行后面的命令。前面的命令会自动执行

清除项目编译信息
mvn clean
清理生命周期

(8)maven概念模型图

框架学习之Mave(一)

项目对象模型,指的是maven项目中的pom.xml文件

主要是三部分项目自身信息,项目所依赖的jar包信息(又独立出来一个模型叫做依赖管理模型)
项目所运行的环境信息,比如jdk,tomcat信息

第一部分:以下三个是项目自身的坐标

com.itheima
maven_java
1.0-SNAPSHOT

第二部分:项目的依赖信息

javax.servlet servlet-api 2.5 provided javax.servlet.jsp jsp-api 2.0 provided junit junit 4.12 test

第三部分:项目运行的环境信息

org.apache.tomcat.maven tomcat7-maven-plugin 2.2 8888 org.apache.maven.plugins maven-compiler-plugin 1.8 1.8 UTF-8

依赖管理模型,jar包连接着三个仓库local(本地仓库),b2b(远程仓库),central(中央仓库)

每一个jar包必须包括这三个坐标
公司组成的名称groupid
项目名arcfacid
版本号version

javax.servlet
servlet-api
2.5

构建生命周期,对应maven第二个核心功能,一键构建
构建项目中的默认生命周期,每一个构建项目的命令对应maven底层的一个插件
compile,test,package,intall,deploy