cmd查看maven版本_Maven

本文详细介绍了如何使用Maven进行项目管理和构建,包括Maven的基本原理、坐标系统、Eclipse集成Maven的步骤,以及创建Java和Web项目的方法。重点讲述了Maven的依赖管理、依赖调解原则和不同依赖范围的使用。通过本文,读者可以全面掌握Maven的常用操作。
摘要由CSDN通过智能技术生成

maven

一,项目的打包

jar -->java项目

war-->web项目

方式1【不推荐】

如果不是maven项目,直接把WebRoot里面的内容copy到tomcat/webapps里面bjsxt

存在问题 如果项目依赖了其它包(非WEB-INF/lib)。那么这些包就无法进入项目

b2d93402d0d054664750047b1abfec09.png

方式二【推荐】

非maven项目推荐

b047e14e19e97da745d331b9d029099c.png

1cf1c1c2853ebb0292e8a1f88c126053.png

4cf6c472a830ed31805803322e104d1b.png

导出war包放到tomcat/webapps里面运行

1,maven概述

1.1 定义

1,Maven 作为 Apache 的一个开源项目,旨在给项目管理提供更多的支持,它最早的意图只是为了给 apache 组织的几个项目提供统一的开发、测试、打包和部署,能让开发者在多个项目中方便的切换。

2,Maven 中最值得称赞的地方就是使用了标准的目录结构和部署。

3,在多个开发团队环境的情况下,Maven可以设置标准。由于大部分的项目设置简单可重复使用,使使Maven开发容易,创建报告,检查,生产和测试完全自动化设置。

4,maven是一个项目构建和管理的工具,提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。

5,maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性,利用maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。

1.2 基本原理

Maven 的基本原理很简单,采用远程仓库和本地仓库以及一个类似 build.xml 的 pom.xml ,将 pom.xml 中定义的 jar 文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的 jar ,同一个版本的 jar 只需下载一次,而且避免每个应用都去拷贝 jar 。

同时它采用了现在流行的插件体系架构,只保留最小的核心,其余功能都通过插件的形式提供,所以 maven 下载很小,在执行 maven 任务时,才会自动下载需要的插件。

389c41f92dc6975d924c55fbca373617.png

mirror相当于一个拦截器,它会拦截maven对remote repository的相关请求,把请求里的remote repository地址,重定向到mirror里配置的地址。

87ae09db45dd09f5de92f6c1d3e1330b.png

此时,B Repository被称为A Repository的镜像。如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。换句话说,任何一个可以从仓库Y获得的构件,都能够从它的镜像中获取。

< mirrors/>是镜像列表,是maven从远程仓库里下载构件的一组服务器镜像。镜像能减轻中央maven库的负载,也能突破代理等的网络环境的限制,每个仓库都有一个ID,而mirror需要和仓库的ID对应。

1.3,坐标

(1)定义

坐标用来标识时空中的某个点,方便人们找到位置,如中电信息大厦可以用经纬度坐标找到,也可以通过国家、省市区、街道、门牌组成的坐标去找。

(2)分类

groupId: 组织ID,一般是公司、团体名称

artifactId:实际项目的ID,一般是项目、模块名称

version:版本,开发中的版本一般打上 SNAPSHOT 标记

Type/packaging :包类型,如JAR,EAR,POM…

classifier:分类,如二进制包、源、文档

通过这个规则就可以定位到世界上任何一个构件。

1.4,特点

1,依赖管理是maven的一大特征,对于一个简单的项目,对依赖的管理并不是什么困难的事,但是如果这个项目依赖的库文件达到几十个甚至于上百个的时候就不是一个简单的问题了。在这个时候maven对于依赖管理的作用就显露出来了。

2,传递性依赖是在maven2中添加的新特征,这个特征的作用就是你不需要考虑你依赖的库文件所需要依赖的库文件,能够将依赖模块的依赖自动的引入。

3,由于没有限制依赖的数量,如果出现循环依赖的时候会出现问题,这个时候有两种方式处理,一种是通过 build-helper-maven-plugin 插件来规避,另一种就是重构两个相互依赖的项目。

4,通过传递性依赖,项目的依赖结构能够很快生成。Maven 能够解决依赖传递

5,传递依赖中需要关注的就是依赖调解,依赖调解的两大原则是:最短路径优先和第一声明优先

6,maven有三套classpath(编译classpath,运行classpath,测试classpath)分别对应构建的三个阶段。依赖范围就是控制依赖与这三套classpath的关系。

7,依赖范围有六种:

compile:编译依赖范围,在三个classpath都有效。

test:测试依赖范围,在编译代码和运行代码是无效。

provided:以提供的依赖范围,在编译和测试的时候有效,在运行的时候无效。例如servlet-api,因为容器已经提供,在运行的时候是不需要的。

runtime:运行时依赖范围,仅在测试和运行的时候有效。例如jdbc只有在测试和运行的时候才有效。

system:系统依赖范围,与provided范围一致,但是依赖是通过系统变量来指定依赖,不利于移植。

import(在maven2.0.9后支持):导入依赖范围,对三个classpath没有实际影响。

87ae09db45dd09f5de92f6c1d3e1330b.png

2,eclipse集成maven插件

2.1 下载maven服务器

下载地址http://maven.apache.org/download.cgi

a16c244e9fd235eeb1cf62a32c6f5b69.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值