一、项目的发布方式
1.使用eclipse发布
只是开发中使用
项目上线时不会使用
2.copy webRoot包到tomcat/webapps里面
缺点:非WEB-INF/lib里面的包无法发布到项目里面
如jstl
3.使用工具导war包
01【掌握】maven概述
1,定义
1,Maven 作为 Apache 的一个开源项目,旨在给项目管理提供更多的支持,它最早的意图只是为了给 apache 组织的几个项目提供统一的开发、测试、打包和部署,能让开发者在多个项目中方便的切换。
2,Maven 中最值得称赞的地方就是使用了标准的目录结构和部署。
3,在多个开发团队环境的情况下,Maven可以设置标准。由于大部分的项目设置简单可重复使用,使使Maven开发容易,创建报告,检查,生产和测试完全自动化设置。
4,maven是一个项目构建和管理的工具,提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。
5,maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性,利用maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。
2,maven可以让项目与项目之间有关系
关系就是依赖
以前的做法
如项目A需要项目B里面的类
把项目B打成jar包放到A的lib里面去
3,如果上一个版本的spring jar包有bug要更新如何办
解决方法:把所有和spring相关的版本删除,再添加新的版本
存在问题:以前的spring的依赖包如
jackson
log4j
等等,这些包的版本如法得知道要更新什么版本
4,使用maven解决上面问题
5,基本原理
6,镜像
mirror相当于一个拦截器,它会拦截maven对remote repository的相关请求,把请求里的remote repository地址,重定向到mirror里配置的地址。
此时,B Repository被称为A Repository的镜像。如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。换句话说,任何一个可以从仓库Y获得的构件,都能够从它的镜像中获取。
< mirrors/>是镜像列表,是maven从远程仓库里下载构件的一组服务器镜像。镜像能减轻中央maven库的负载,也能突破代理等的网络环境的限制,每个仓库都有一个ID,而mirror需要和仓库的ID对应。
7,坐标
jar包名字的组成部分是什么
spring-mvc-4.3.17.jar
jar名 项目名
版本号
生活中的坐标作用:
Maven里面基础的坐标
G-groupId
A -artifactId
V --version
8,三级仓库结构
(1)远程公用仓库
Maven 内置了远程公用仓库: http://repo1.maven.org/maven2 这个公用仓库也叫中央仓库是由 Maven 自己维护,包好了世界上大部分流行的开源项目构件。
https://mvnrepository.com
(2)内部中央仓库
也称私有共享仓库(私服)。一般是由公司自己设立的,只为本公司内部共享使用。它既可以作为公司内部构件协作和存档,也可以作为公用类库镜像缓存,减少在外部访问和下载的频率。
(3)本地仓库
Maven 会将工程中依赖的构件(Jar包)从远程下载到本机一个目录下管理,通常默认在 $user.home/.m2/repository 下。
02【掌握】eclipse集成maven插件
1.下载
http://maven.apache.org/download.cgi
2.解压
3.目录说明
bin 要配置环境变量的命令地址
boot 启动jar包 了解
conf 配置文件[重点]
lib 依赖包
4.配置maven的环境变量
测试
mvn -version
5.配置本地仓库
D:\DevTools\server\apache-maven-3.6.0\conf
6.配置镜像
<!-- 配置阿里云镜像-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
7.Maven项目的JDK配置
<profile>
<id>jdk1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<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>
</properties>
</profile>
8.在eclipse下安装插件
9.修改jdk的配置
03【掌握】eclipse下创建java项目
1.创建Maven项目
2.设置GAV坐标
3.Maven java项目目录说明
src/main/java 存放java代码
src/main/resouces 存放 配置文件的
src/test/java 存放测试的java的代码
src/test/resources 存放测试的配置文件
src:是以上四个目录的集合
target:插件和编译后的目录
pom.xml
|–对项目需要的插件和依赖的配置
4.导入一些简单的依赖
<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/xsd/maven-
4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sxt</groupId>
<artifactId>01_maven_hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 声明依赖的配置 -->
<properties>
<spring.version>4.3.7.RELEASE</spring.version>
<mybatis.version></mybatis.version>
<servlet.version>3.1.0</servlet.version>
</properties>
<!-- 配置依赖 -->
<dependencies>
<!-- 配置spring-bean的依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${
spring.version}</version>
<!-- 排除commons-logging的包 -->
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 引入servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${
servlet.version}</version>
<scope>provided</scope>
</dependency>
<!-- 引入jsp -->
</dependencies>
</project>
5.排除依赖jar包
6.GAV坐标的再次说明
G–groupid 组织ID
A- artifactId 项目名
V- version 项目版本
scope
|-- compile 默认的编译时有效
|-- provided 在项目打包时不会被加入war包里
|-- runtime 运行时有效
|-- system 如果maven里面没有需要的jar包那可以使用本地的包要结合systemPath
|-- systemPath
7.引入本地包
<dependency>
<groupId>commons-carrent</groupId>
<artifactId>commons-carrent</artifactId>
<version>2.0</version>
<scope>system</scope>
<systemPath>D:\workspace-sts\1129adv\01_maven_hello\lib\commons-
carrent.jar</systemPath>
</dependency>
8.引入其它项目
创建Maven项目
引入
9.总结
每一个Maven项目都有gav坐标
目地是为了上其它项目能进行依赖
04【掌握】eclipse下maven项目聚合
1.项目的继承1
1.创建01_maven_parent的Maven项目
打包形式
packaging :pom
加入依赖
<!-- 加入依赖 -->
<dependencies