Maven初学一

第一天

开发项目时要找某个jar包,实际上就是要确定jar包的坐标

1.maven坐标及仓库的概述

在这里插入图片描述

2.项目的运行

1.打开cmd,在编程后的项目所在路径下,使用命令mvn tomcat:run将项目部署到tomcat上,然后打开浏览器运行项目。如图:
在这里插入图片描述
在这里插入图片描述
2.将项目打成war包,如果是web工程是打包成war,是java工程打包成jar,父工程打包成pom,使用命令mvn package如图:在这里插入图片描述
打包后的war再target目录下,如图:
在这里插入图片描述

3.相关概念

构建

maven将项目构建的过程进行标准化,每个阶段使用一个命令完成,下图展示了构建过程的一些阶段:
在这里插入图片描述
上图中部分阶段对应命令如下:

  • 清理阶段对应maven的命令是clean,清理输出的class文件

  • 编译阶段对应maven的命令是compile,将java代码编译成class文件。

  • 打包阶段对应maven的命令是package,java工程可以打成jar包,web工程可以打成war包

  • 运行一个maven工程(web工程)需要一个命令:tomat:run

maven工程构建的优点:
1、一个命令完成构建、运行,方便快捷。
2、maven对每个构建阶段进行规范,非常有利于大型团队协作开发。

依赖管理

1.传统项目的依赖管理

传统的项目工程要管理所依赖的jar包完全靠人工进行,程序员从网上下载jar包添加到项目工程中,如下图:程序员手工将Hibernate、struts2、spring的jar添加到工程中的WEB-INF/lib目录下:

手工拷贝jar包添加到工程中的问题是:
1、没有对jar包的版本统一管理,容易导致版本冲突。
2、从网上找jar包非常不方便,有些jar找不到。
3、jar包添加到工程中导致工程过大。

2.maven项目的依赖管理
maven项目管理所依赖的jar包不需要手动向工程添加jar包,只需要在pom.xml(maven工程的配置文件)添加jar包的坐标,自动从maven仓库中下载jar包、运行,如下图:在这里插入图片描述
使用maven依赖管理添加jar的好处:
1、通过pom.xml文件对jar包的版本进行统一管理,可避免版本冲突。
2、maven团队维护了一个非常全的maven仓库,里边包括了当前使用的jar包,maven工程可以自动从maven仓库下载jar包,非常方便。

maven的优势
  1. 一步构建 maven对项目构建的过程进行标准化,通过一个命令即可完成构建过程。 依赖管理

  2. maven工程不用手动导jar包,通过在pom.xml中定义坐标从maven仓库自动下载,方便且不易出错。

  3. maven的跨平台,可在window、linux上使用。

  4. maven遵循规范开发有利于提高大型团队的开发效率,降低项目的维护成本,大公司都会考虑使用maven来构建项目。

生命周期

maven对项目构建过程分为三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是: 
Clean Lifecycle 在进行真正的构建之前进行一些清理工作。 
Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
Site Lifecycle 生成项目报告,站点,发布站点。

生命周期阶段

  1. 如下是clean生命周期的阶段

    pre-clean 执行一些需要在clean之前完成的工作
    clean 移除所有上一次构建生成的文件
    post-clean 执行一些需要在clean之后立刻完成的工作

  2. 如下是default周期的内容:
    validate
    generate-sources
    process-sources
    generate-resources
    process-resources 复制并处理资源文件,至目标目录,准备打包。
    compile 编译项目的源代码。
    process-classes
    generate-test-sources
    process-test-sources
    generate-test-resources
    process-test-resources 复制并处理资源文件,至目标测试目录。
    test-compile 编译测试源代码。
    process-test-classes
    test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
    prepare-package
    package 接受编译好的代码,打包成可发布的格式,如 JAR 。
    pre-integration-test
    integration-test
    post-integration-test
    verify
    install 将包安装至本地仓库,以让其它项目依赖。
    deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享。

  3. 如下是site生命周期的阶段
    pre-site 执行一些需要在生成站点文档之前完成的工作
    site 生成项目的站点文档
    post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
    site-deploy 将生成的站点文档部署到特定的服务器上

 每个maven命令对应生命周期的某个阶段,例如:mvn clean 命令对应clean生命周期的clean阶段;
 mvn test 命令对应default生命周期的test阶段。
 执行命令会将该命令在的在生命周期当中之前的阶段自动执行,比如:执行mvn clean 命令会自动执行pre-clean和clean两个阶段,mvn test命令会自动执行validate、compile、test等阶段。

 注意:执行某个生命周期的某个阶段不会影响其它的生命周期!

如果要同时执行多个生命周期的阶段可在命令行输入多个命令,中间以空格隔开,例如:
clean package 该命令执行clean生命周期的clean阶段和default生命周期的package阶段。

4.maven的安装和目录结构

下载

从该网站 http://maven.apache.org/download.cgi 下载maven3.3.9 版本

解压
将maven解压到一个不含有中文和空格的目录中。

bin目录 mvn.bat (以run方式运行项目)、 mvnDebug.bat(以debug方式运行项目 )
boot目录 maven运行需要类加载器 
conf目录 settings.xml 整个maven工具核心配置文件 
lib目录 maven运行依赖jar包

环境变量的配置
电脑上需安装java环境,安装JDK1.7 + 版本 (将JAVA_HOME/bin 配置环境变量path )

配置 MAVEN_HOME
在这里插入图片描述
将 %MAVEN_HOME%/bin 加入环境变量 path
在这里插入图片描述
通过 mvn -v命令检查 maven是否安装成功,看到maven的版本为3.3.9及java版本为1.7即为安装成功。
在这里插入图片描述
目录结构
在这里插入图片描述
Maven目录结构的规范
在这里插入图片描述
在这里插入图片描述

5.仓库的配置

仓库的分类

maven的工作需要从仓库下载一些jar包,如下图所示
本地的项目A、项目B等都会通过maven软件从远程仓库(可以理解为互联网上的仓库)下载jar包并存在本地仓库,
本地仓库 就是本地文件夹,当第二次需要此jar包时则不再从远程仓库下载,
因为本地仓库已经存在了,可以将本地仓库理解为缓存

在这里插入图片描述
本地仓库的配置

  • 本地仓库 :用来存储从远程仓库或中央仓库下载的插件和jar包,项目使用一些插件或jar包,优先从本地仓库查找
  • 默认本地仓库位置在 u s e r . d i r / . m 2 / r e p o s i t o r y , {user.dir}/.m2/repository, user.dir/.m2/repository{user.dir}表示windows用户目录。
  • 远程仓库:如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库下载。 远程仓库可以在互联网内也可以在局域网内。
  • 中央仓库 :在maven软件中内置一个远程仓库地址http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由Maven团队自己维护,里面存储了非常全的jar包,它包含了世界上大部分流行的开源项目构件。
    配置
    将 “repository.rar”解压至自己的电脑上
    在这里插入图片描述
    配置文件:在maven安装路径下\conf\settings.xml文件中配置本地仓库位置:
    在这里插入图片描述

6.maven的命令

1.compile
compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下。
cmd进入命令状态,执行mvn compile,如下图提示成功:
在这里插入图片描述
查看 target目录,class文件已生成,编译完成。
在这里插入图片描述
2.test
test是maven工程的测试命令,会执行src/test/java下的单元测试类。
cmd执行mvn test执行src/test/java下单元测试类,下图为测试结果,运行1个测试用例,全部成功。
在这里插入图片描述
3.clean
clean是maven工程的清理命令,执行 clean会删除target目录的内容。
4.package
package是maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包。
5.install
install是maven工程的安装命令,执行install将maven打成jar包或war包发布到本地仓库。
从运行结果中,可以看出:当后面的命令执行时,前面的操作过程也都会自动执行

7.maven工程创建及坐标的添加

m2e插件安装配置

通过入门程序中命令行的方式使用maven工作效率不高,可以在eclipse开发工具中集成maven软件
eclipse是一个开发工具,maven是一个项目管理工具,maven有一套项目构建的规范
在eclipse集成maven软件,最终通过eclipse创建maven工程。

插件安装
在这里插入图片描述
在eclipse中配置仓库的位置
在这里插入图片描述
构建索引
Window—show view ------other----------maven Repositories
在这里插入图片描述
重构索引
在这里插入图片描述
在eclipse中创建一个maven工程
在这里插入图片描述
选择maven project
在这里插入图片描述
点next进入下面的界面
在这里插入图片描述
8. 可以看到一个helloworld工程,但报错(添加下面的内容就OK了)
在这里插入图片描述
9. src/java/main创建了一个Servlet,但报错
在这里插入图片描述
10. 要解决问题,就是要将servlet-api-xxx.jar包放进来,作为maven工程应当添加servlet的坐标,从而导入它的jar
直接打开helloworld工程的pom.xml文件,再添加坐标
在这里插入图片描述

添加后自动生成的结果如下:
添加
在这里插入图片描述
添加jar包的坐标时,还可以指定这个jar包将来的作用范围
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值