maven(6)------maven坐标分析
在不使用maven管理项目,直接使用IDE开发项目时,一个web项目中会涉及到很多技术,
比如struts2,hibernate,spring,mybatis等等,这个时候,我们就需要去各大官网下载不同版本
的lib文件,找到各种技术依赖的jar包,这样我们就需要花费大量的时间浏览网站寻找jar包,花大量时间
解决jar包的冲突,以及升级等问题。
在这种情况下,就急切的需要一个jar包规范,统一管理,不需要到处寻寻觅觅的找jar包,maven能很好
的帮我们解决这个问题,在maven中内置了一个中央仓库(http://repo1.maven.org/maven2/),在中央仓库中,
有着大部分主流技术的jar包,只需要配置maven的pom.xml文件,就可以轻松的从中央仓库中获取jar包,
一旦项目稳定,pom.xml就不需要做多少修改,自然形成jar包的规范,一个人管理pom.xml文件即可,
让更多的人将心思都放在业务需求和研发功能上,无需为jar包升级和jar包冲突大费周章。
哪么项目如何通过pom.xml配置去中央仓库(这里先不用考虑nexus)下载jar包?
在平面几何中,我们可以通过(x,y)坐标去确认平面上的某个点,maven中jar包寻找也是用类似
的坐标概念完成。
比如pom.xm中关于依赖jar包log4j的配置如下:
- <dependencies>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.15</version>
- </dependency>
- </dependencies>
groupId为项目分组,artifactId项目分组下的项目唯一标识,version为项目版本号。
如果在联网状态下,maven通过groupId:artifactId:version去中央仓库寻找jar包,
并下载到本地仓库。
我们可以通过中央仓库地址用浏览器访问中央仓库:
http://repo1.maven.org/maven2/
然后根据pom.xml配置groupId先找到log4j,在根据artifactId找到log4j,最后根据version找到jar包并下载到本地:
依赖jar包下载的过程就是将手动下载变成自动下载,化繁为简,根据我们的pom.xml配置下载jar包,对jar包进行依赖管理。
当这些jar包下载到本地后,web项目使用时根据maven下的setting配置使用本地仓库,通过同样的方式在本地
寻找到jar包并使用。
当我们将项目打成jar,war等包时,maven会根据pom.xml中配置,将对应的jar包放到包中,
比如:web项目打完包后生成war包,pom.xml配置的jar包都放到xxx.war中WEB-INF/lib下,这样当web项目
在web容器(比如tomcat)中运行时,才能从WEB-IN/lib下引用依赖jar包代码。
比如:
maven(6)------maven坐标分析的更多相关文章
- Maven(三)在Eclipse中使用Maven与Maven坐标
这一篇讲解一下在eclipse中使用maven,在一些高版本的eclipse中是自带maven插件的.所以这里就不在讲解怎么安装插件了. 接下来我们创建一个MavenFirst项目 一.在Eclips ...
- maven学习(九)——maven中的坐标、依赖以及仓库
一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点. 1.2.Maven坐标主要组成 groupId:组织标识(包名) artifactId:项目名称 ver ...
- Maven仓库与坐标(五)
一.Maven仓库 存放依赖的一个位置/文件夹/仓库,分为以下几种: 本地仓库 中央仓库 远程仓库 1. 本地仓库 第一次执行maven命令时被创建,maven运行时需要的构件都从本地仓库获取,本地仓 ...
- Maven 仓库、坐标、常用命令
maven中的仓库 需要jar包时,先到本地仓库中找,没有就从中央仓库去下载到本地仓库. 中央仓库很多都在国外,下载速度慢.国内的一些公司在自己的服务器上搭建了maven仓库(中央仓库的镜像),供内部 ...
- [Maven]Apache Maven 入门篇
作者:George Ma 上 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法.这个入门篇分上下两篇.本文着重动手,用 ma ...
- 【Maven】Maven 高级应用
Maven 高级应用 Maven 基础 Maven 是一个项目管理工具,它有如下好处: 节省磁盘空间 可以一键构建 可以跨平台使用 依赖传递和管理,提高开发效率 一键构建:Maven 自身集成了 To ...
- 【Maven】maven 插件开发实战
前言 众所周知,maven 实质上是一个插件执行框架,所有的工作都是通过插件完成的.包括我们日常使用到的类似 install.clean.deploy.compiler...这些命令,其实底层都是一个 ...
- 【项目管理和构建】十分钟教程,eclipse配置maven + 创建maven项目(三)
[项目管理和构建]十分钟教程,eclipse配置maven + 创建maven项目(三) 上篇博文中我们介绍了maven下载.安装和配置(二),这篇博文我们配置一下eclipse,将它和maven结合 ...
- Maven开发基础总结(Maven自启动,Maven打war包,Maven热部署)
学习内容: 1.不依赖外部Tomcat,自己启动方式部署 2.Maven打war包,远程部署到centOS 3.Maven热部署(不关闭Tomcat部署应用) 做maven开发前提: 1.编码UT ...
- maven安装 maven上传jar包到库里面
maven的安装与配置:http://pansanday.blog.163.com/blog/static/381662802012727103454743/ maven上传jar包到库里面: 将私有 ...
随机推荐
- PHP MySQL -处理语句
PHP MySQL 预处理语句 预处理语句对于防止 MySQL 注入是非常有用的. 预处理语句及绑定参数 预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高. 预处理语句的工作原理如下: 预 ...
- C语言的角落——C之很常使用特性(一)
本文搜集整理了一些之前博客中没有提到的,C语言不经常使用的特性,算是对C系列的最后一次补充. 对C语言有兴趣的朋友能够浏览一下,查漏补缺. 变长參数列表 <stdarg.h> 头文件定义了 ...
- UVa 10642 - Can You Solve It?
题目:二维平面上的整数点.用路径链接起来(0,0)->(1.0)->(0.1)->(2,0)->.. 给你两点坐标.求两点间步长(在路径上的距离). 分析:简单题. 我们发现点 ...
- java面试第四天
修饰符static: 把对象相关的变成类相关的,它可以修饰属性.方法.代码块和内部类 static修饰属性(类变量): 那么这个属性就可以用" 类名.属性名 "来访问,也就是使这个 ...
- openerp发送给群组信息
发送给群组 self.pool.get('mail.group').message_post(cr, uid, [1], body=_('Welcome to ! Please ...
- hdu 4893 Wow! Such Sequence!(线段树)
题目链接:hdu 4983 Wow! Such Sequence! 题目大意:就是三种操作 1 k d, 改动k的为值添加d 2 l r, 查询l到r的区间和 3 l r. 间l到r区间上的所以数变成 ...
- java开发工具之myeclipse调优
-vmargs -Xms512m //堆的最小值-Xmx512m //堆的最大值(两者设置相同,避免运行时的自动扩张)-XX:PermSize=256m //永久代的最小值 -XX:MaxPermSi ...
- 在centos (linux) 搭建 eclipse c++开发分环境
网上说得很多,很烦,操作了很多,总有错误,但解决方案很简单.步骤就下面几步就OK了 安装gcc .g++ yum install gcc yum install gcc-c++ 安装jdk,配置jdk ...
- iOS- 快速实现展示布局
概述 比较有规律的页面, 快速实现展示布局, 提高开发效率. 详细 代码下载:http://www.demodashi.com/demo/10713.html 看到这个界面,是不是觉得不像那种比较有规 ...
- 开源大数据技术专场(下午):Databircks、Intel、阿里、梨视频的技术实践
摘要: 本论坛第一次聚集阿里Hadoop.Spark.Hbase.Jtorm各领域的技术专家,讲述Hadoop生态的过去现在未来及阿里在Hadoop大生态领域的实践与探索. 开源大数据技术专场下午场在 ...