本篇文章仅为Maven学习随记
一:
maven介绍与环境搭建:
maven是基于项目对象模型(POM),可以通过一小段描述信息来管理
项目的构建、报告和文档的软件项目管理工具。
下载好后:
①:bin目录下面包含mvn的运行脚本
②:boot目录包含了一个类加载器的框架
③:conf是配置文件的目录
④:lib是maven运行时所需要的类库,除了自身的还包含了maven运行时所依赖的第三方的类库。
二:
maven目录结构:
src
-main
-java
-package
-test
-java
-package
resources
maven中的pom.xml标签含义:
①:groupId的值就是项目的包名
②:artifactId的值就是模块名
三:
3.1:
maven常用命令:
mvn -v :查看maven版本
compile:编译
test:测试
package:打包
clean 删除target
install:安装jar包到本地仓库中。
3.2:
自动创建目录骨架:
archetype插件:用于创建符合maven规定的目录骨架
如:css样式文件 images图片
maven规定:
-src
-main
-java
-主代码
-src
-test
-测试代码
创建目录的两种方式
1:archetype:generate 按照提示进行选择
2:archetype:generate -DgroupId=组织名,公司网址的反写+项目名
-DartifactId=项目名-模块名
-Dversion=版本号
-Dpackage=项目所在的包
3.3:maven中的坐标和仓库:
坐标
构件
坐标:在maven世界中,任何一个依赖、插件、项目构件的输出都可以被称之为构件。
构件通过坐标作为唯一的标识。
如(地址、电话)
比如:
<dependency>
<groupId>com.imooc.maven01groupId>
<artifactId>maven01-modelartifactId>
<version>0.0.1SNAPSHOTversion>
dependency>
就是一个坐标
建议:在创建maven项目时,java的包名应该与pom.xml中定义的groupId、artifactId相吻合
这样看起来更加清晰,符合逻辑,并且方便搜索。
仓库
本地仓库和远程仓库(中央全球仓库)
中央仓库地址:http://search.maven.org/
镜像仓库
更改仓库位置
3.4 在eclipse中安装maven插件以及创建maven项目
3.5 maven的生命周期和插件
命令:clean、compile、test、package、install
完整的项目构建过程包括:
清理、编译、测试、打包、集成测试、验证、部署。
maven生命周期:
clean 清理项目
pre-clean 执行清理前的工作
clean 清理上一次构建生成的所有文件
post-clean 执行清理后的文件
default 构建项目(最核心)
compile、test、package、install
site 生成项目站点
pre-site 在生成项目站点前要完成的工作
site 生成项目的站点文档
post-site 在生成项目站点后要完成的工作
site-deploy 发布生成的站点到服务器上。
3.6: pom.xml常用元素介绍:
<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.0modelVersion>
<groupId>反写的公司网址+项目名groupId>
<artifactId>项目名+模块名artifactId>
<version>version>
<packaging>packaging>
<name>name>
<url>url>
<description>description>
<developers>developers>
<licenses>licenses>
<organization>organization>
<dependencies>
<dependency>
<groupId>groupId>
<artifactId>artifactId>
<version>version>
<type>type>
<scope>testscope>
<optional>optional>
<exclusions>
<exclusion>
exclusion>
exclusions>
dependency>
dependencies>
<dependencyManagement>
<dependencies>
<dependency>dependency>
dependencies>
dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>groupId>
<artifactId>artifactId>
<version>version>
plugin>
plugins>
build>
<parent>parent>
<modules>
<module> module>
modules>
project>
3.7 maven依赖范围
maven中三种classpath:
1:编译 2:测试 3:运行
例如:
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>3.8.1version>
<scope>testscope>
表示junit用在测试的项目中,存在于测试的范围
依赖范围用来控制依赖与三种classpath的关系的。
Dependency Scope:
1:compile:默认范围,编译测试运行都有效
2:provided:在编译和测试时有效,在最后运行时无效。
3:Runtime:在测试和运行时有效。
4:test:只在测试范围有效。
5:system:与本机系统相关联,可移植性差。
6:import:导入的范围,它只使用在dependencyManagement中,表示从其他的pom中导入dependency的配置。
3.8:maven的依赖传递
见项目:hongxing-bge hongxing-nage hongxing-shanji
3.9:maven的依赖冲突
1:短路优先
A->B->C->X(jar)
A->D->X(jar)
2:先声明先优先
如果路径长度相同,则谁先声明,先解析谁
3.10:maven的聚合和继承
4.1 使用maven构建web项目
5.1 课程总结
1:maven下载和环境搭建:如何在windows下安装maven
2:maven目录骨架的说明:
①:主代码存放路径:
-src
-main
-java
主代码
②:测试代码存放路径:
-src
-test
测试代码
pom.xml用于管理项目依赖和构建过程
3:常用的maven命令
4:仓库和坐标
5:在eclipse安装和创建maven项目
6:生命周期、pom.xml以及依赖、聚合、继承
7:eclipse中创建web项目和jetty插件的安装。
致自己:仅仅了解maven相关知识概念,之后还需通过实践熟练maven的使用。