1.什么是Maven
Maven是apache下的开源项目,项目管理工具,管理java项目。
1、项目对象模型 (Project Object Model)
POM对象模型,每个maven工程中都有一个pom.xml文件,定义工程所依赖的jar包、本工程的坐标、打包运行方式。。
2、依赖管理系统(基础核心 )
maven通过坐标对项目工程所依赖的jar包统一规范管理。
3、maven定义一套项目生命周期
清理、初始化、编译、测试、报告 、打包、部署、站点生成
4、一组标准集合
强调:maven工程有自己标准的工程目录结构、定义坐标有标准。
5、maven 管理项目生命周期过程都是基于插件完成的

2.Maven仓库

1、中央仓库
就是远程仓库,仓库中jar由专业团队(maven团队)统一维护。
中央仓库的地址:http://repo1.maven.org/maven2/
2、本地仓库
相当于缓存,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找。
3、私服
在公司内部架设一台私服,其它公司架设一台仓库,对外公开。
3.Maven环境搭建
(一)Maven下载
可以到maven的官网下载
http://maven.apache.org/download.cgi

我们将下载的压缩包解压到D盘根目录,D盘根目录会有下面的文件夹apache-maven-3.3.9
(二)本地仓库配置
1. 拷贝本地仓库
将资料中的repository_ssh.zip解压到D盘
2. 配置本地仓库
打开maven的安装目录中conf/ settings.xml文件,在这里配置本地仓库:
| <localRepository>D:\repository_ssh</localRepository> |
这里的意思是配置本地仓库的目录为D:\repository_ssh
(三)eclipse配置Maven
1. 配置Maven的安装目录
进入eclipse ,选择菜单windows - Preferences , 在左侧的树状导航中

点击add按钮,弹出窗口后选择maven的安装目录

然后点击Apply

2. 配置User Settings

选择左侧树形导航的User Settings ,选择Maven目录下conf下的settingsxml
然后点击Update Settings 、Reindex 和Apply按钮.
(四)重建本地仓库索引
选择菜单 window --> show View


选择 Rebuild Index 重新创建索引
4、Maven入门
(一)创建工程
1. 选择菜单 File ->new -> Other

选择Maven下的Maven Project, Next
2. 选中下图红框部分的复选框(跳过骨架),next

3. 定义工程坐标
maven对所有工程管理基于坐标进行管理。

坐标包括:
Group Id:项目的名称,项目名称以域名的倒序,比如:cn.itcast.mavendemo
Artifact Id:模块名称(子项目名称)
Version:模块的版本,snapshot(快照版,没有正式发行)、release(正式发行版本)
输入后,Finish 。完成后如下图

工程目录结构说明:
project
/src/main/java 主体程序 java源文件(不要放配置文件)
/src/main/resources 主体程序所需要的配置文件(不要放java文件)
/src/test/java 单元测试程序 java源文件
/src/test/resources 单元测试程序所用的配置文件
/target 编译输出目录
pom.xml Maven进行工作的主要配置文件。
4. 编写代码
(1)在src/main/java 目录下创建包cn.itcast.mavendemo
(2)在包cn.itcast.mavendemo下创建HelloWorld 类
| package cn.itcast.mavendemo;
public class HelloWorld {
public static void main(String[] args) { System.out.println("Hello World!!"); } } |
(二)设置编译版本
我们现在的Maven工程默认是JDK1.5 ,我们需要将编译版本改为JDK1.7
| <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build> |
将上边的配置信息粘贴到pom.xml中。
点击工程右键 Maven -> Update Project ...
弹出窗口后OK .操作后 ,编译版本改为 1.7

(三)添加依赖

右键点击工程 Maven -- > Add Dependency

添加后打开pom.xml,发现多了以下信息
| <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.0.7.Final</version> </dependency> </dependencies> |
我们再看工程目录下的Maven Dependecies 下又多了很多jar包

奇怪了!我只是加了一个hibernate的核心包,为什么会多出这么多jar包呢?
这是因为hibernate的核心包本身又会依赖其它的jar包,所以导入hibernate包自动会添加hibernate所依赖的包。
(四)项目生命周期(了解)
Maven有三套相互独立的生命周期,分别是:clean、default、site。clean主要是清理项目、default是Maven最核心的的构建项目、site是生成项目站点。每一个大的生命周期又分为很多个阶段。后面的阶段依赖于前面的阶段,这点有点像Ant的构建依赖。生命周期本身相互独立,用户可以仅仅调用生命周期的某一个阶段,也就是说用户调用了default周期的任何阶段,并不会触发clean周期以及site周期的任何事情。三大生命周期蕴含着小小的阶段,我们按顺序看一下:

(1)clean周期:
pre-clean:准备清理
clean:真正的清理工作
post-clean:执行清理后的一些后续工作
(2)default周期:
validate:验证
initialize:初始化配置
generate-sources:生成源代码编译目录
process-sources:处理项目主资源文件,复制资源文件到outputclasspath
generate-resources:生成资源目录
process-resources:处理资源文件
complie:编译源代码
process-classes:处理编译后文件
generate-test-sources:生成测试目录
process-test-sources:处理项目测试资源文件,复制测试资源文件到outputclasspath
generate-test-resources:生成测试资源文件
process-test-resources:处理测试资源文件
test-compile:编译测试代码
process-test-classes:处理测试代码
test:单元测试运行测试代码
prepare-package:打包前的准备
package:将编译好的代码打包成为jar或者war或者ear等等
pre-integration-test:准备整体测试
integration-test:整体测试
post-integration-test:为整体测试收尾
verify:验证
install:安装到本地Maven库
deploy:将最终包部署到远程Maven仓库
(3)site周期:
pre-site:准备生成站点
site:生成站点及文档
post-site:站点收尾
site-deploy:将生成的站点发布到服务器上
(五)常见命令
maven通过命令对工程进行清理、编译、测试、打包、部署。
点击工程右键 ,Run As (或Debug As ) -- > Maven Build ...

常用命令如下:
compile:编译
clean:清理,将target下的class文件清理
test: 执行单元测试类,执行src/test/java下的类
package :将java工程打成jar、war。
install:安装命令,将将程的jar发布到本地仓库
发布到仓库,目录按照本工程定义的坐标生成目录
扩展:
其实我们所执行的这些命令是对maven原生命令的封装,我们可以在命令提示符下直接通过这些命令来对代码进行编译打包等操作,格式如下:
mvn 命令名称 运行不调试
mvnDebug 命令名称 调试运行
我们要在命令提示符下执行maven命令必须配置下面两个环境变量
MAVEN_HOME D:\apache-maven-3.3.9
PATH %MAVEN_HOME%\bin
测试Maven环境 ,在控制台输入mvn -v ,有下列信息输出表示Maven配置正常。

5、创建SSH2工程(重点)
需求,用SSH2集成框架搭建工程mavenweb ,功能为单表的列表查询。
表名称 dep (部门表)
| 字段名称 |
字段类型 |
字段含义 |
| uuid |
bigint |
主键:部门编号 |
| name |
varchar |
部门名称 |
| tele |
varchar |
部门电话 |
(一)创建war工程
1. 选择菜单 File ->new -> Other

选择Maven下的Maven Project, next
2. 选中下图红框部分的复选框(跳过骨架),next

3. 定义工程坐标

注意打包方式选择war工程。
4. 手动添加web.xml
(1)在src /main/webapp 目录下手动创建WEB-INF目录
(2)将资源文件夹下的web.xml拷贝至WEB-INF目录

5. 添加插件
将下列配置拷贝至pom.xml
| <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <configuration> <!-- 指定端口 --> <port>8080</port> <!-- 请求路径 --> <path>/</path> </configuration> </plugin> </plugins> </build> |
点击工程右键 Maven -> Update Project ...
- 在pom.xml中添加servlet-api
因为我们创建的是war工程 ,需要response 和request 等对象,而这些对象是在servlet-api中的,所以我们需要添加servlet-api ,才能保证工程正常编译。
注意:必须指定scope为provided , 这是设置依赖范围,我们后边的章节会详细讲解。如果设置则启动会报错。
| <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> </dependencies> |
添加后更新工程
7. 创建index.jsp
| <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>测试页面</title> </head> <body> 开启神秘的Maven世界~ </body> </html> |
部署运行测试 执行命令
| tomcat7:run |
用浏览器测试,地址: http://localhost:8080/index.jsp
(二)添加SSH依赖
SSH2框架需要添加的依赖如下:
| <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.0.7.Final</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>4.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.2.4.RELEASE |

本文详细介绍了Maven的各个方面,包括项目对象模型(POM)、依赖管理系统、项目生命周期、Maven仓库(中央仓库、本地仓库、私服)、环境搭建步骤、Eclipse配置、常见命令、构建war包、SSH2工程创建、多模块项目管理和依赖管理。通过实例展示了Maven如何管理Java项目的依赖、构建流程和仓库配置,以及如何与SVN协同工作。
最低0.47元/天 解锁文章
4707

被折叠的 条评论
为什么被折叠?



