Maven
一,简介
-
什么是maven?
是一个apache组织开源的项目构建工
-
项目构建
源文件编译 功能进行测试 项目打包(java项目: 打成jar包,web项目 打成war包),部署 ,维护.
-
使用Maven的好处
- 摆脱现有的IDE规范(IDE为集成开发工具)规范,用maven构建的项目可以在多个项目中移植.
- 本地部署 | 远程热部署 不用关闭服务器直接部署项目
- 可以持续集成 | 持续发布 项目上线是可以使用maven制定构建任务(按照设定事件自动打包部署,测试功能),同时,如果项目发生错误,将错误日志以邮件的形式发往指定邮箱
- 自动构建项目中的依赖(jar包),节省本地磁盘资源(项目找jar)
二,项目约定(目录结构)
-
Maven项目
|–src/main/java 负责存放java的源代码
|–src/main/resources 存放需要的配置文件
|–src/test/java 存放测试时的java文件
|–src/test/resources 存放测试的配置文件
|–pom.xml maven的配置文件 POM(Project Object Model)项目对象模型 用于书写项目中需要的依赖
三,Maven环境搭建
-
下载位置 www.apache.org apache-maven-版本号
-
文件作用
bin 放置命令
boot 启动配置文件
conf 存放配置文件 setting.xml为核心配置文件
lib 存放maven需要的jar包
-
安装(解压缩) [注意安装路径不能有空格和中文]
-
pom.xml
标签:<groupId com.xxx /groupId> 公司 域名倒置
标签<artifactId xxx /artifactId>项目名
标签<version 1.0 /version> 版本号
-
阿里云镜像配置setting.xml
<mirror
<id alimaven </ id>
<name aliyun maven /name>
<url http://maven.aliyun.com/nexus/content/groups/public/ /url>
<mirrorOf central /mirrorOf>
/mirror>
-
命令
mvn compile 对项目进行编译操作,生成target 目录,存放编译后的内容
mvn clean 对项目进行清理操作 会将target文件目录清除
mvn test 对所有的测试类进行 测试类,并且会生成测试报告
mvn package 对项目中运行的class文件进行打包操作
-
注意事项
在第一次进行maven相关的操作命令时,会下载命令相关的插件
程序运行
三,maven执行顺序
- 项目
- 本地仓库(有依赖直接返回没有,默认区中心库下载
- 镜像仓库 维护中心仓库所有的资源
- 中央仓库
四,Maven和MyEclipse集成(MyEclipse2014)
-
windows–>Preferences–>搜索maven–>Installations–>add添加maven工具包–>选择User Settings–>将本地maven,conf文件中的setting路径添加上去.
-
Maven项目的创建
new–>other–>输入maven–>选择MavenProject–>点击next–>默认–>点击next–>选择骨架(创建Java项目用maven-archetype-quickstart,创建web用maven-archetype-webapp)–>group id 填写域名com.xxxx–>Artifact id填项目名–>Version版本(0.0.1SNAPSHOT快照版本,开发中的版本;0.0.1RELEASE稳定版本,可以上线使用的版本;也可以只写一个版本号)–>点击finsh
-
项目创建后的注意事项
-
项目创建成功后将pom.xml配置文件中build标签里的内容全部删除.
-
补充maven包结构,在项目中创建source folder 创为src/main/resource &src/test/resource
-
引入相关的依赖jar包(使用坐标[依赖的唯一标识]关联依赖)
jar包之间存在依赖关系,导入核心jar包之后,会自动关联当前jar包的
标签<properties 项目编译时的默认配置 编码格式 JDK版本 /properties>
-
-
Maven创建web项目
创建项目–>other–>maven project–>next–>选择骨架webapp
注意事项:将pom.xml中<build 标签里的内容删除,webapp等价与原来项目的webroot index.jsp出错,新建的maven项目中没有javaEE规范(默认不添加) 手工引入jsp-api.jar依赖和servlet-api.jar依赖
补全目录结构
-
删除创建项目默认生成两个文件, 选中项目–>右击 build path–>configuer build path–>将missing文件夹删除
-
按照目录结构创建四个文件夹
src/main/java
src/main/resources
src/test/java
src/test/resources
-
-
引入依赖的scope标签的作用
- compile 使用于项目所有阶段 会打包到项目中
- provided 类似与compile 不会打包到项目中 容器提供
- runtime 只在运行时生效(最多到测试) 不会打包到项目中
- test 只在测试时生效 不会打包到项目中
- system 不归仓库管理,需要手工管理
五,下载maven下载失败的文件
-
xxxxx.lastupdated 代表下载失败 后续下载
需要修改文件内部:指定本地库所在位置