1、maven介绍
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。
2、maven的目录结构
3、maven的常用命令
(1)mvn -v 查看maven版本
(2)compile编译
(3)test 测试
(4)package打包
(5)clean 删除target
(6)install 安装jar包到本地仓库中
-Dgroup=组织名,公司网址的反写+项目名
-DartifactId=项目名-模块名
-Dversion=版本号
-Dpackage=代码所存在的包名
4、maven中的坐标和仓库
(1)坐标
(2)构件
(3)仓库:本地仓库和远程仓库(全球中央仓库)
(4)镜像仓库:http://maven.net.cn/content/groups/public
(5)更改仓库位置
5、在myeclipse创建maven项目
点击finish然后maven就创建。然后采用以下方式运行pom.xml
在项目中的pom.xml上右键-》run as-》maven build-》在goals输入compile命令,然后run
--》再一次在pom.xml上右键-》run as-》maven build-》在goals输入package命令进行打包,然后run
就可以在看到编译文件class、测试surefire、打包war
完整的项目构建过程包括:
清理、编译、测试、打包、集成测试、验证、部署
Maven生命周期:
清理项目:clean
构建项目:default
生命项目站点:site
6、pom.xml解析
指定了当前pom的版本
<modelVersion>4.0.0</modelVersion>
<groupId>反写公司的网址+项目名</groupId>
<artifactId>项目名+模块名</artifactId>
<packaging>打包,可以是jar、war、zip</packaging>
<version>第一个0表示大版本号
第二个0表示分支版本号
第三个0表示小版本号
</version>
<name>项目的描述名</name>
<url>http://maven.apache.org项目的地址</url>
<dependencies>
<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<scope></scope> 依赖范围
<optional></optional> 设置依赖是否可选
<exclusion></exclusion>排除依赖传递列表
</dependency>
</dependencies>
插件列表
<build>
<finalName>hi</finalName>
</build>
</project>
7、依赖的范围
<scope>test</scope>表示依赖只在测试范围
8、依赖的传递
项目中的依赖,被依赖的项目需要打包给其他项目依赖
9、依赖的冲突
(1)短路优先
如果有两个选择,则会选择短一点的先执行
A->B->C->x(jar)
A->D->x(jar) 这个执行
(2)先声明先优先
如果路径相同,则谁先声明,谁优先解析
10、聚合和继承
web项目的创建
其中一部分:
在run configuration里录入:
1、 配置jvm参数,便于debug
-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y -Djetty.port=8080
2、 打包war到jet器
3、 运行jetty
4、 在浏览器地址栏输入
http://localhost:8080/myweb 可以看到
Jetty目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器。
Tomcat 和 Jetty 都是作为一个 Servlet 引擎
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lin.hello</groupId>
<artifactId>hello</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>hello Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>hello</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.16.v20140903</version>
</plugin>
</plugins>
</build>
</project>