zoukankan      html  css  js  c++  java
  • 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%in; + ...
    04:验证:在dos下mvn -version确认
    05:
    手动建立了一个路径为“
    e:/work/maven_lib
    ”的文件夹,然后把本地仓库指向该路径:
     
        打开“apache-maven-3.0.5confsettings.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:workingfilemavenRepository</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 仓库中引用依赖)。

  • 相关阅读:
    WeTest与腾讯安全联合推出小程序质量方案,助力私域流量2.0新增长
    【福利】腾讯WeTest专有云,限时开放招募体验官
    新官网 心体验,腾讯WeTest全新产品功能与解决方案发布!
    大会回顾丨游戏用户体验优化如何实践,看大咖怎么说(附PPT下载)
    【福利】腾讯WeTest专有云解决方案,限时开放招募体验官
    【干货分享】研效优化实践:AI算法助力深层BUG挖掘
    WeTest小程序质量专项方案推出,小程序异常监控内测招募中
    WeTest.net全球能力开放:锻造高品质产品,构建全球竞争力
    腾讯WeTest即将亮相MTSC2021中国互联网测试开发大会
    压测大师链路监控服务开放免费体验预约
  • 原文地址:https://www.cnblogs.com/xuxueli/p/4685525.html
Copyright © 2011-2022 走看看