Fork me on GitHub

windows + maven + eclipse

Maven中央仓库信息速查:http://maven.outofmemory.cn/    

 
Windows安装maven,并配置本地maven的JAR仓储库:    

01:安装JDK,并配置;
02:下载Maven:http://maven.apache.org/download.htmll 解压目录文件中;
(apache-maven-3.2.5-bin.zip)
03:配置环境变量;
        MAVEN_HOME=...    
        PATH=%MAVEN_HOME%\bin; + ...
04:验证:在dos下mvn -version确认
05:
手动建立了一个路径为“
e:/work/maven_lib
”的文件夹,然后把本地仓库指向该路径:
 
    打开“apache-maven-3.0.5\conf\settings.xml”文件夹下的settings.xml文件,修改localRepository:
        <localRepository>e:/work/maven_lib</localRepository>
 
Eclipse配置maven:(查看笔记“Eclipse插件汇总”)    

01:项目文件修改之后,在taget/class中有编译文件的情况下,需要项目右键执行:run clean ,否则将会把taget下的文件打包到tomcat下,巨坑;
 
Eclipse+maven常用功能:    

1、subclipse检出项目文件;
2、项目右键》Configure》Convert to Maven Project;
        maven转为工程一般工程: 工程右键--->Maven--->Disable Maven Nature转为一般工程。
        一般工程转为maven工程: 工程右键--->Configure--->Convert to Maven Project。
3、项目右键》Maven》Update Project;
4、修改web Module:修改WEB_INF/web.xml文件
 
 
pom.xml:    

在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:
    * compile,缺省值,适用于所有阶段,会随着项目一起发布。
    * provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
    * runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
    * test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
    * system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
 
 
maven仓库配置(maven仓库快速镜像 ):修改settings.xml(安装目录/conf/settings.xml)

 

1、本地仓库:根节点settings下修改此处<localRepository>E:\workingfile\mavenRepository</localRepository>

2、中央仓库:节点mirrors下添加以下配置其中一个镜像:

国内连接maven官方的仓库更新依赖库,网速一般很慢,收集一些国内快速的maven仓库镜像以备用。

====================国内OSChina提供的镜像,非常不错===================

<mirror>

        <id>CN</id>
        <mirrorOf>central</mirrorOf>
        <name>OSChina Central</name> 
        <url>http://maven.oschina.net/content/groups/public/</url>
</mirror>

========================================================

OSChina Maven 库使用帮助

==================其他maven仓库镜像==========================

1、maven 仓库地址:

共有的仓库

http://repo.maven.apache.org/maven2/ 

http://repo1.maven.org/maven2/  

http://repository.jboss.com/maven2/  

http://repository.sonatype.org/content/groups/public/  

http://mirrors.ibiblio.org/pub/mirrors/maven2/org/acegisecurity/  

 

私有的仓库

http://repository.codehaus.org/

http://snapshots.repository.codehaus.org/

http://people.apache.org/repo/m2-snapshot-repository

http://people.apache.org/repo/m2-incubating-repository/

 

同时可以搭建自己的maven仓库:私服, 搭建的方式参考如下:

http://juvenshun.javaeye.com/blog/349534

2、收集的外部仓库地址

http://www.ibiblio.org/maven/mule/dependencies/maven2/     

 

Maven中央仓库——你可能不知道的细节 


地址 —— 目前来说,http://repo1.maven.org/maven2/是真正的Maven中央仓库的地址,该地址内置在Maven的源码中,其它地址包括著名的ibiblio.org,都是镜像。

规模 —— 每周有超过来自250,000开发者的70,000,000次访问,2010年的总访问量很有可能超过4,000,000,000。中央仓库存储了超过200,000,000的构件。

索引 —— 中央仓库带有索引文件以方便用户对其进行搜索,完整的索引文件大小约为60M,索引每周更新一次。

黑名单 —— 如果某个IP地址恶意的下载中央仓库内容,例如全公司100台机器使用同一个IP反复下载,这个IP(甚至是IP段)会进入黑名单,因此稍有规模的使用Maven时,应该用Nexus架设私服。

垃圾内容 —— 由于各种历史原因,中央仓库里面确实存在很多垃圾内容,例如不完整的POM,错误的maven-metadata.xml,主要的责任是开源项目上传内容时不太小心,目前中央仓库正致力于更规范的流程以防止新的垃圾内容进入。

背后的公司 —— Maven的托管在Apache的,但中央仓库不是Apache的资源,中央仓库是由Sonatype出资维护的。

提交内容 —— 只要你的项目是开源的,而且你能提供完备的POM等信息,你就可以提交项目文件至中央仓库,这可以通过Sonatype提供的开源Maven仓库托管服务实现。

非Maven用户 —— 除Maven之外,其它工具如Ivy和Gradle也使用Maven中央仓库。

 

maven scope(依赖范围控制)说明


compile (编译范围) :compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用,同时它们也会被打包。 

provided (已提供范围) provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用。例如, 如果你开发了一个web 应用,你可能在编译 classpath 中需要可用的Servlet API 来编译一个servlet,但是你不会想要在打包好的WAR 中包含这个Servlet API;这个Servlet API JAR 由你的应用服务器或者servlet 容器提供。已提供范围的依赖在编译classpath (不是运行时)可用。它们不是传递性的,也不会被打包。 

runtime (运行时范围) runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC 

驱动实现。

test (测试范围) test范围依赖 在一般的编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。 

system (系统范围) system范围依赖与provided 类似,但是你必须显式的提供一个对于本地系统中JAR 文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库的一部分。这样的构件应该是一直可用的,Maven 也不会在仓库中去寻找它。如果你将一个依赖范围设置成系统范围,你必须同时提供一个 systemPath 元素。注意该范围是不推荐使用的(你应该一直尽量去从公共或定制的 Maven 仓库中引用依赖)。

posted @ 2015-07-29 11:47  许雪里  阅读(355)  评论(0编辑  收藏  举报