2009-09-25 10:18 30736人阅读 评论(6) 收藏 举报
分类:
工具文章(4)

come from : http://www.javaeye.com/topic/240424

用了Maven,所需的JAR包就不能再像往常一样,自己找到并下载下来,用IDE导进去就完事了,Maven用了一个项目依赖 (Dependency)的概念,用俗话说,就是我的项目需要用你这个jar包,就称之为我的项目依赖你这个包,换句话说,你这个JAR包就是我这个项目 的Dependency。

于是很多人在刚用Maven的时候,就会在加Dependency时栽跟头,明明我手头上就有需要的JAR嘛,它偏不让我用,什么道理,跟着就是生闷气, 少点耐性的,就会说Maven怎么怎么不爽,其实,如果你理解了Maven的一些机制,一些配置及管理的流程,就会觉得它其实很爽。

我暂且不谈Maven的长篇概念(其实我也还很多很多不懂),我先给大家介绍一个简单的查找方法,让你很快地找到所需的Dependency,并配置到你的pom.xml里面去。

最快捷方法:

GOOGLE搜索:maven 你需的jar包名称 repository

比如我要做EJB,我要找jboss-j2ee.jar的Dependency

就在GOOGLE里输入

maven jboss-j2ee repository

在结果的第一条,进去你就可以在页面里找到下面这段

<dependency>
    <groupId>jboss</groupId>
    <artifactId>jboss-j2ee</artifactId>
    <version>4.0.2</version>
</dependency>

你把上面这段代码贴到你的Maven项目的pom适当的位置去,然后运行maven,Maven就会自动下载所需的jar及相关的pom信息,你不用管它,Maven会帮你下载,并放到适当的位置。

我再举几个查找实例,让大家熟悉一下怎么搜索

下面我要找 struts.jar

在GOOGLE里输入

maven struts repository

就很快可以找到下面这段代码

<dependency>
    <groupId>struts</groupId>
    <artifactId>struts</artifactId>
    <version>1.2.9</version>
</dependency>

我还要找hibernate

在GOOGLE输入

maven hibernate repository

在结果的第一条记录出现了很多个不同的hibernate链接(因为有很项目用了hibernate嘛)我们就选用org.hibernate的,看起来专业点嘛,呵呵

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate</artifactId>
    <version>3.2.6.ga</version>
</dependency>

好了,SSH可不能少了中间那个S,Spring嘛

在GOOGLE里输入

maven spring repository

在第一个结果进去,我们这次选择org.springframework的,

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring</artifactId>
    <version>2.5.5</version>
</dependency>

其它的我就不一一举例了,大家自己试试,其实这个方法可以解决大多数常用包的Dependency查找,不用专门记那些repository下载站的网址
嘛,不过始终这是非正规做法,其它要想更好地找到想要的Dependency,还是得了解maven repository是啥玩意,它的local
repository库概念,以及怎样建立自己自己repository服务器(这个我还不太熟,这里就不讲了,大家自己去其它地方找相关资料,免得被我
误导了)

Maven的repository,说白了就是dependency的仓库,它按照一定的规则将dependency存放起来,以作缓存,如果本机的
repository找不到某个dependency,它就会自动去找到网上其它相关联的repository,找到的话将其下载至本地,那么下次它就不
再去其它地方下载了,直接从本地获取。

本地的repository在哪可找到?

默认repository地址:当前用户的私人目录 + .m2

如果你设置了Maven目录下的conf/setting.xml的local repository属性,则不再是默认的repository地址,而使用你指定的地址。

找到下面这段,将它复制一份,放到注释外面,改成你自己的repository路径即可

<localRepository>c:/mvn repository/</localRepository>

Maven按什么规则去存放Dependency?

下面我们来拿hibernate来作例子,以介绍在Maven运行并下载到所需的Dependency后怎么缓存到本地的repository

下面这个是hibernate的Dependency配置

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate</artifactId>
    <version>3.2.6.ga</version>
</dependency>

它被下载后将会被存放至

%repository%/org/hibernate/hibernate/3.2.6.ga/hibernate-3.2.6.ga.jar

其中%repository%就是你本地的repository目录!

不知大家看出来了没有,它是按你的Dependency的groupid + artifactid + version,然后以点号作分隔,来建立文件夹的,最后建立的文件夹如下

|--org

|--hibernate

|--hibernate

|--3.2.6.ga

|--hibernate-3.2.6.ga.jar

可能会有些人会问那个jar包的名字是怎么来的,细心的人或许早己观察出来了,没错,就是artifactId + "-" + version + ".jar"。

好了,下面我们按这个规则去找一下另外一个Dependency放在哪吧

<dependency>

<groupId>com.google.gwt</groupId>

<artifactId>gwt-servlet</artifactId>

<version>1.4.61</version>

</dependency>

我们现在根据之前所讲的规则,先进入你的本地repository目录,然后进入com目录,再进入google目录,再进入gwt目录,再进入
gwt-servlet目录,再进入1.4.61目录,跟着你就可以发现一个名叫gwt-servlet-1.4.61.jar和其它一些文件了大家试试
看吧!《注意:你在首次使用这个Dependency时,一定要运行Maven,让它去下载到需要的包,下载成功后你才能按上面的步骤找到,不然你找不到
别乱骂我,你都没下载的话,肯定找不到了:(       》

在你掌握这个技巧之后,有很多时候你可以根据所需包的package路径,自己摸它的Dependency,这个就不详谈了,总之你了解后,找Dependency不会成问题的,非常简单的事

这个时候,就有另一些用户会提出疑问,我要用的jar包是我自己开发的,或是朋友,或是网友传来的,在网上根据找不到,怎么在Maven里面使用它们呢? 其实办法是肯定有的,而且也不难,也是常常要用到的,下面我来简单介绍一下几个方法:

前提,肯定是你先写到pom里面去,组织随你写,artifact 写你的jar名,或者随便写,version你也写上你想要的,如

<dependency>

<groupId>com.mydomain.ooooo</groupId>

<artifactId>my-jar</artifactId>

<version>100.1.1</version>

</dependency>

一、用好你的IDE!

现在大家用的IDE,无非就是Eclipse,或者netbeans,或是JBuilder,据我所知,现在大部份人都向前两者转移,这些IDE都提供了
对Maven的支持,不过通常都需要你装插件才能打开并使用Maven的项目,怎么装maven插件我就不介绍了,大家自己上网找找别人写的文章吧。在你
装好插件后,通常会有一个libraies目录,里面列出你项目要用到的jar包,你右键点击本地还没有添加进去的jar包,选择本地安装
(Manually install
artifact),选中你那个特殊的jar包,然后IDE会自动调用maven插件完成整个安装配置过程,下次你就不再这样子做了,因为你本地
repository己经有了。

二、手动将jar包放到本地repository里面去

根据先前介绍的maven repository存放规则,自己建好目录,改好jar的文件名,自己拷进去,如

进到你本地的repository目录

建一个com文件夹,点进去

再建一个mydomain文件夹,点进去

再建一个ooooo文件夹,点进去

再建一个my-jar文件夹,点进去

再建一个100.1.1文件夹,点进去

再把你的jar包,改名为my-jar-100.1.1.jar,放到100.1.1文件夹里面去,

然后运行你的maven项目,看看它会不会build成功,事实上如果你之前做的文件夹没错,大小写没问题,或没其它小失误,你的项目就可以正常用到你自己的jar包了

三、直接到http://repo1.maven.org/maven2/ 查找

不过这也需要你知道maven repository的存放规则才知道怎么在网站上找,找到你还得自己写dependency的配置代码,本人不常来这里找。不过各有所好,大家选择合适自己的

 
3
0

我的同类文章

工具文章(4)

 
猜你在找
 
查看评论
6楼 hqf2009 2016-07-18 16:13发表 [回复]
写得很好!
5楼 zhuojiajin 2014-12-19 19:52发表 [回复]
也不知道哪里写错了,不起效果。
4楼 shiyingzhan 2014-05-13 18:07发表 [回复]
很好
3楼 fonglibin 2013-10-18 17:26发表 [回复]
偶然用到maven的项目,配置POI.xml最麻烦了,谢谢楼主哈
2楼 雨霖铃Sunny 2013-09-27 08:50发表 [回复]
详解,感谢楼主带来好的东西!
1楼 KE107478210 2011-07-19 09:21发表 [回复]
不错不错,呵呵呵~~~
您还没有登录,请[登录][注册]
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
 
 
 
 

    个人资料
 
 
    • 访问:176444次
    • 积分:1815
    • 等级:
    • 排名:第15309名
    • 原创:12篇
    • 转载:46篇
    • 译文:0篇
    • 评论:17条
    文章搜索

 
    文章分类
    文章存档
    最新评论
 

 

公司简介|招贤纳士|广告服务|银行汇款帐号|联系方式|版权声明|法律顾问|问题报告|合作伙伴|论坛反馈
网站客服杂志客服微博客服webmaster@csdn.net400-600-2320|北京创新乐知信息技术有限公司 版权所有|江苏乐知网络技术有限公司 提供商务支持
京 ICP 证 09002463 号|Copyright © 1999-2014, CSDN.NET, All Rights Reserved 

 

maven dependendency的更多相关文章

  1. 【分享】标准springMVC+mybatis项目maven搭建最精简教程

    文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...

  2. 理解Maven中的SNAPSHOT版本和正式版本

    Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...

  3. 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo

    Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...

  4. 安装eclipse的maven插件

    我们团队用maven来管理项目需要的库文件,其实以前都没听过maven,第一次接触这个,师兄要我直接去装下这个,开始以为还挺简单的,没想到中间遇到了一些小麻烦,现在把我成功安装maven的过程分享下, ...

  5. MAVEN学习-第一个Maven项目的构建

    MAVEN安装成功之后就可以进行项目的构建和管理了: 为什么要用maven进行项目的构建和管理? 对于初学者来说一个最直接的也是最容易里的优点在于JAR包的管理,相对于以前开发一个项目的时候我们需要用 ...

  6. Maven 代理设置

    在maven的安装目录下 %MAVEN_HOME%/conf/setting.xml 中进行设置 <proxies>    <!-- proxy     | Specificatio ...

  7. spring maven pom.xml设置

    spring pom.xml设置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...

  8. maven依赖查询地址

    http://search.maven.org/#search%7Cga%7C1%7C

  9. maven 中snapshot版本和release版本的区别

    maven中的仓库分为两种,snapshot快照仓库和release发布仓库.snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本.定义一个组件/模 ...

随机推荐

  1. springMVC与Struts2区别

    1.拦截级别 Struts2是类级别的拦截,一个类对应一个request上下文 SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应 所以说从架构本身 ...

  2. 18.async函数

    1.含义 async 函数是什么?一句话,它就是 Generator 函数的语法糖. 前文有一个 Generator 函数,依次读取两个文件. var fs = require('fs'); var ...

  3. 如何阅读复杂的C类型声明

    阅读复杂的C类型声明,通常采用右左法则,也就是Clockwise/Spiral Rule (顺时针/螺旋法则). 本文将首先介绍工具(cdecl)(个人比较偏好使用工具提高学习和工作效率),然后中英文 ...

  4. js中window对象详解以及页面跳转

    1.window.top.window.location = "index.asp"; 2.window.top.location.href="index.asp&quo ...

  5. ES6学习随笔--字符串模板、解构赋值、对象、循环、函数、Promise、Generrator

    在线编译器:babel.github 在nongjs中使用 'use strict' let a = ; 运行node : node --harmony_destructuring xxx.js 代码 ...

  6. Android 直接通过JNI访问驱动

    package com.yang.jniaccesshardware; import android.os.Bundle; import android.support.v7.app.AppCompa ...

  7. iOS选择相片优化

    1.问题 在ios中有时需要选择本地图片或者拍照,有时候选择相片的时候会有多选和单选,所以需要首先封装相册选择,在之前的博客中也有写到IOS多选单选相册图片.这个只是对相册中选择图片的封装.我们在ap ...

  8. OpenFileDialog 打开文件对话框

    InitialDirectory 对话框的初始目录 Filter 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*" Filt ...

  9. MUI框架 picker日期选择器实例

    MUI官方文档点我 (一)准备工作,下载相关的js.cs文件,地址 (二)新建普通html页面 1)引入相关js.cs文件 2) 一个input,记录下id: <form> <lab ...

  10. 集群搭建之Hive配置要点

    注意点: 在启动Hive 的时候要先启动Hadoop和MySQL服务. Mysql 和 Hive 搭建在 yan00机器上. part1:MySQL配置相关 安装和配置相关命令: Yum instal ...