Maven的依赖机制能够自动下载依赖文件,并且自动维护、更新版本。

让我们通过一个案例来了解Maven是如何工作的,假如你的系统想用log4j作为日志输出工具,让我们看一下传统做法和Maven做法:

1、传统做法

  1.1、访问http://logging.apache.org/log4j/

  1.2、下载log4j jar文件

  1.3、把jar文件复制到工程的classpath里

  1.4、手动把它添加到项目的依赖里

  1.5、所有的管理都得自己来,你要做所有的事情

  1.6、当版本升级时,你要重复以上步骤

2、使用Maven

  2.1、你需要知道log4j的Maven参数,如下:

 <groupId>log4j</groupId>
<artifactId>log4j</artifactId>
3 <version>1.2.14</version> 如果"version"标签没写,就会自动下载最新的

  2.2、在pom.xml文件里声明这段Maven参数:

 <dependencies>
<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.14</version>
</dependency>
</dependencies>

  3.3、当项目编译或构建的时候,log4j jar文件会被自动下载到本地仓库。

  3.4、所以的工作都由Maven进行管理。

当你构建一个Maven项目的时候,pom.xml文件会被解析,如果它看到了log4j 的Maven参数,就会按如下顺序去下载log4j jar文件:本地仓库-->中心仓库-->远程仓库(如果有定义的话)。

那么如何找到Maven的参数坐标?

Maven center repository查找你想要下载的jar包。

Maven是如何工作的的更多相关文章

  1. idea运行多模块的maven项目,工作目录不一致的问题

    我使用idea开发多模块的maven项目,目录结构如下: segment  (父级)          ---pom.xml          ---core     (子模块)            ...

  2. maven 简介

    本书代码下载 大家可以从我的网站下载本书的代码:http://www.juvenxu.com/mvn-in-action/,也可以通过我的网站与我取得联系,欢迎大家与我交流任何关于本书的问题和关于Ma ...

  3. 项目开发之使用 maven

    本文将详述 maven 在软件项目中的使用.首先讲述 maven 的基本工作原理及环境的搭建.然后讲述开发及配置管理人员如何使用 maven,最后将介绍 maven 与 eclipse 集成使用. m ...

  4. Maven的安装、配置及使用入门

    Maven的安装.配置及使用入门 本书代码下载 大家可以从我的网站下载本书的代码:http://www.juvenxu.com/mvn-in-action/,也可以通过我的网站与我取得联系,欢迎大家与 ...

  5. Java工程转换为Maven工程-b

    1. 前言 在开发中经常要建立一个Maven的子工程,对于没有模板的同学来说从Java工程来转换也是一个不错的选择.本文就如何从一个Java工程创建一个Maven工程做了一个介绍,相信对于将一个Jav ...

  6. maven占位符

    maven占位符默认是${} 也可以自己指定. pom.xml配置如下: <plugin> <groupId>org.apache.maven.plugins</grou ...

  7. Java工程转换为Maven工程

    1. 前言 在开发中经常要建立一个Maven的子工程,对于没有模板的同学来说从Java工程来转换也是一个不错的选择.本文就如何从一个Java工程创建一个Maven工程做了一个介绍,相信对于将一个Jav ...

  8. 环境搭建之maven分布式系统

    shoppingmall项目: 一.父工程  shoppingmall-parent  (packaging为pom) 此是本项目的顶级工程,所有子工程都应该继承他,主要可承担以下任务: a.集中定义 ...

  9. (一)《Maven实战》读书笔记 —— Maven简介

    第一章:Maven简介 一.何为Maven? Maven这个词可以翻译为"知识的积累",本书将介绍Maven这一跨平台的项目管理工具.作为Apache组织中的一个个颇为成功的开源项 ...

随机推荐

  1. 《.NET简单企业应用》项目开发环境

    项目开始,开发团队需要构建一套开发环境,主要包含:开发工具.代码管理/版本控制系统.任务和Bug管理系统和持续集成(CI)系统.本文主要列举项目开发中经常使用的开发工具和第三方库. 本文所列工具根据前 ...

  2. 进程和cpu绑定

    #include<stdlib.h> #include<stdio.h> #include<sys/types.h> #include<sys/sysinfo ...

  3. 关于cookie的一点知识

    关于cookie的一点知识 1.cookie是存储在客户端计算机中. 2.cookie不能跨浏览器访问.cookie是浏览器保存的,所以不同浏览器对cookie的保存路径.存储数据的格式.文件大小都可 ...

  4. 《C++Primer》复习——with C++11 [1]

    1.头文件中不应包含using声明,因为头文件的内容会拷贝到所有引用到他的文件中去,如果头文件里有谋个using声明,那么每个使用了该头文件的文件就会有这个声明,由于不经意间包含了一些名字,反而可能产 ...

  5. 常用sqlserver语句

    1.查看表上的索引 sp_helpIndex [表名]  --查询表上拥有的索引 2.更新其它表 update 申请信息set 研发部门='123',版本信息='321'where 单号=(selec ...

  6. BZOJ3550: [ONTAK2010]Vacation

    3550: [ONTAK2010]Vacation Time Limit: 10 Sec  Memory Limit: 96 MBSubmit: 91  Solved: 71[Submit][Stat ...

  7. lucas求组合数C(n,k)%p

    Saving Beans http://acm.hdu.edu.cn/showproblem.php?pid=3037 #include<cstdio> typedef __int64 L ...

  8. 获取c++ edit控件内容

    CString str1,str2; ((CEdit*)GetDlgItem(IDC_EDIT1))->GetWindowText(str1); ((CEdit*)GetDlgItem(IDC_ ...

  9. 基于EBP的栈帧

    程序的OEP,一开始以 push ebp 和mov ebp esp这两句开始.   原因:c程序的开始是以一个主函数main()为开始的,而函数在访问的过程中最重要的事情就是要确保堆栈的平衡,而在wi ...

  10. 【转】System.DateTime.Now.ToString()的一些用法

    C#中的日期处理函数     //2007年4月24日     this.TextBox6.Text = System.DateTime.Now.ToString("D");    ...