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>
========================================================
==================其他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 仓库中引用依赖)。
- java包 和 物理目录 解惑(转载)
- Eclipse常用插件 + Eclipse快捷键
- LeetCode234_PalindromeLinkedList (判断是否为回文链表) Java题解
- Idea 创建spring mvc例子
- Java模式—静态代理模式
- java 静态变量与静态初始化块中变量的初始化顺序
- java 调用存储过程
- Java集合之泛型的使用
- eclipse 选中代码,提示其他相同代码
- 学习在一台新电脑上配置JAVA开发环境
- Java集合框架之map
- java集合中List与set的区别
- JAVA浮点型数据的精确计算
- 查看jdk 线程 日志
- spring各jar包作用于spring常用注解
- 如何在eclipse jee中检出项目并转换为Maven project,最后转换为Dynamic web project
- 如何在eclipse jee中创建Maven project并且转换为Dynamic web project
- JavaWeb项目中 .classpath、.mymetadata、.project文件的作用
- 关于Java的path,classpath,java_home环境变量的配置与具体含义
- Spring mvc+hibernate+freemarker(开源项目)