mavenWebStageDay19
1.Maven概述:
1).概念: Maven 管理项目的工具.
2).作用:
(1)maven对项目的第三方构件(jar包)进行统一管理;
(2)maven提供一套对项目生命周期管理的标准: 编译/测试/打包/部署/运行;
(3)maven对工程模块构建,提高开发效率.
3).Maven的概念模型:
- 项目对象模型 (Project Object Model)。POM对象模型,每个maven工程中都有一个pom.xml文件,定义工程所依赖的jar包、本工程的坐标、打包运行方式。
- 依赖管理系统(基础核心 )。maven通过坐标对项目工程所依赖的jar包统一规范管理。
- maven定义一套项目生命周期。清理、初始化、编译、测试、报告 、打包、部署、站点生成。
- 一组标准集合。maven工程有自己标准的工程目录结构、定义坐标有标准。
- maven 管理项目生命周期过程都是基于插件完成的,例如:开发中使用的tomcat插件。
4).Maven的仓库:
-本地仓库: 本机缓存(在程序员的电脑上,不允许中文和空格)
-*仓库: http://repo1.maven.org/maven2/
-远程仓库: 在公司内部架设一台私服,其它公司架设一台仓库,对外公开.
5).Maven的坐标:
Maven的一个核心的作用就是管理项目的依赖,引入我们所需的各种jar包.
坐标的定义元素如下:
- groupId:定义当前Maven项目名称
- artifactId:定义项目模块
- version:定义当前项目的当前版本
举例:在pom.xml配置文件中配置引入junit的坐标:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
<scope>test</scope>
</dependency>
2.Maven的安装
1).解压文件(免安装):apache-maven-3.3.9-bin.zip
所在目录不允许出现:中文和空格
2).配置maven的本地仓库和远程仓库settings.xml:
(1) 安装目录下config文件夹-->settings.xml
第55行 标签体写jar包目录: <localRepository>D:\develop\java\apache-maven-3.3.9\repository</localRepository>
第160行 设置阿里云下载地址:
<mirror>
<id>AliMaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
(2) 系统变量中(电脑c盘-属性-高级系统设置-环境变量-系统变量):
JAVA_HOME --> jdk所在目录:C:\Program Files\Java\jdk1.8.0_162
MAVEN_HOME --> maven解压目录:D:\develop\java\apache-maven-3.3.9
path --> 增加: %JAVA_HOME%\bin 和 %MAVEN_HOME%\bin
(3) 打开cmd--> 输入:mvn -version
打印出当前maven的版本号等信息,即正确
3.IDEA创建Maven工程
1).IDEA指定本地Maven
IDEA-->settings...-->Build,Execution,Deployment-->Build Tools-->Maven下设置:
(1)Maven home directory : 选择maven的解压目录 D:/develop/java/apache-maven-3.3.9
(2)User settings file: 选择maven中的conf/settings.xml 勾选后面的Override
(3)Local repository: 选择maven中的repository文件夹路径(jar包路径) 勾选后面的Override
2).创建java工程,javase项目:
(1)file--> new--> project--> Maven --> 勾选create from archetype(从骨架模板创建) -->(maven-archetype-quickstart) -->next
(2)GroupId: com.itheima66 --> ArtifactId: javase --> version: 默认为1.0-SNAPSHOT -->next
(3)Maven home directory / User settings file: / Local repository: 在上一步已经设置完毕 -->next
(4)project name: 66-mvn (工程名) --> Module name: javasehello --> finish完成
项目构建成功后,第一次会自动下载(需要联网),弹出 Maven projects need to be imported 选择: nable Auto-Import 以后自动导入jar包
显示:BUILD SUCCESS!
java工程目录结构:
src/main/java java代码编写目录
src/test/java 测试代码编写目录
3).创建javaweb工程:
(1)与创建java工程类似,仅 骨架模板选择不同create from archetype:(maven-archetype-webapp)
(2)结构完善:
main下面创建java文件:右键文件 mark Directory as Sources Root
main下面创建resource文件:右键文件 mark Directory as Resources Root
src下创建test文件--> java文件:右键文件 mark Directory as Test Sources Root
src下--> test文件--> resource文件:右键文件 mark Directory as Test Resources Root
(3)导入新jar包依赖 --> 修改pom.xml (项目经理和架构师提前写好)
pom.xml第29行新增<dependency></dependency>标签内容:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
官网maven依赖去查询dependency写法,本地没有则下载
mvnrepository
4.创建自定义JavaWeb工程(后补)
5.Maven的常用命令:
1)IDEA右侧 Maven Projects -->选中项目–> Lifecycle -->
clean(清除之前编译的内容)
complie(重新编译)
test(把test目录下所有@Test 都运行一遍)
package打包(目的不同,方式不同)(打包后的项目会在target目录下找到)
install打包后将其安装在本地仓库
<packaging>war</packaging>
打包方式:war-->用于给服务器部署
生成war格式文件 --> 放入tomcat / webapp下 -->tomcat每隔一分钟自动扫描部署(或手动bin下startup.bat)
<packaging>jar</packaging>
打包方式:jar-->自定义工具类,创建私服,共享资源
生成jar格式文件 --> 添加到web项目的pom.xml中,配置<dependency>
<dependency>
<groupId>com.itheima66</groupId>
<artifactId>javase</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
在web项目下,测试使用.
6.依赖管理
(scope)依赖范围:
compile 编译/测试/运行/
provided 编译/测试/
runtime:测试/运行
test: 只测试有效
按照依赖强度,由强到弱来排序:(理解)
compile> provided> runtime> test
7.使用Maven构建javaWeb项目:(Servlet+JSP+dbutils)
需求:
完成添加客户信息的操作
创建步骤:
1.构建maven-javaEE项目
2.数据库 表创建
3.配置文件–>main–resources下
4.三层架构–>main–java下
5.页面文件–>webapp下
6.jar包导入–>pom.xml修改配置
maven坐标:mysql驱动,dbutils,servlet-api,jsp-api
7.实现插入数据的逻辑功能
注意:
maven创建项目的时候,web.xml默认使用2.3版本,jsp还没有jstl导入.将它替换为3.1版本的web.xml
上一篇: Maven
推荐阅读