Maven基本知识点总结

1 . maven: 管理多模块开发,方便管理多模块之间的依赖

2 .依赖包的查询:

     1: 所有的依赖都是通过坐标来进行存储的(GVA)
     2: 有一些网上的仓库提供了坐标的查询(http://mvnrepository.com,sonatype nexus,http://search.maven.org/,http://maven.apache.org/plugins/)
     3: maven首先会在本地仓库查询依赖,如果本地仓库没有就到中央仓库中查询


3.  依赖的传递性

     1: 如果A依赖于B,B依赖于c,那么A久依赖于C,这就是依赖的传递性,这种依赖默认是基于compile范围进行传递的
    
     2: 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仓库中引用
        依赖)。

4.  模块的聚合:

        com.mavem.user
    user-main
    0.0.1-SNAPSHOT
    pom

    
        ../user-dao
        ../user-log
        ../user-core
        ../user-service
    
    
    
5.  maven中的继承

       1: 将一些公共的信息,所有模块都需要的信息放在父pom.xml文件中中
       4.0.0
    com.maven.user
    user-parent
    0.0.1-SNAPSHOT
    pom


       http://maven.apache.org
      
       UTF-8
      



       2: 所有的模块中将公共的信息继承过来
      
       com.maven.user
       user-parent
       0.0.1-SNAPSHOT
       ../user-parent/pom.xml
      


       3: 依赖的管理(排除版本冲突问题)

        当你在你的超级复杂的企业中采用Maven之后,你有了两百多个相互关联的Maven项目,
    你开始想知道是否有一个更好的方法来处理依赖版本。如果每一个使用如MySQL数据
    库驱动依赖的项目都需要独立的列出该依赖的版本,在你需要升级到一个新版本的时
    候你就会遇到问题。由于这些版本号分散在你的项目树中,你需要手工的编写每一个
    引用该依赖的pom.xml,确保每个地方的版本号都更改了。即使使用了find,xargs,
    和,awk,你仍然有漏掉一个POM的风险。
    
    幸运的是,Maven在dependencyManagement元素中为你提供了一种方式来统一依赖版
    本号。你经常会在一个组织或者项目的最顶层的父POM中看到dependencyManagement元
    素。使用pom.xml中的dependencyManagement元素能让你在子项目中引用一个依
    赖而不用显式的列出版本号。Maven会沿着父子层次向上走,直到找到一个拥
    有dependencyManagement元素的项目,然后它就会使用在这个dependencyManagement元
    素中指定的版本号。 实例如下:

       parent:

                   4.0.0
            com.maven.user
            user-parent
            0.0.1-SNAPSHOT
            pom
            http://maven.apache.org
            
                UTF-8
            


            
                
                    
                        junit
                        junit
                        4.10
                        test
                    

                    
                        com.maven.user
                        user-dao
                        0.0.1-SNAPSHOT
                    

                    
                        com.maven.user
                        user-log
                        0.0.1-SNAPSHOT
                    


                    
                        com.maven.user
                        user-core
                        0.0.1-SNAPSHOT
                    


                    
                        log4j
                        log4j
                        1.2.16
                    


                    
                        commons-logging
                        commons-logging
                        1.1.1
                    


                           
                    mysql
                    mysql-connector-java
                    5.1.21
                       

            
                           
                    org.hibernate
                    hibernate-core
                    4.0.0.Final
                        



                       

              


            
       子模块;

                       
               
                  junit
                  junit
               

               
                com.maven.user
                user-dao
               

               
                com.maven.user
                user-log
               

             
 
             

6.   版本的管理

         总版本号.分支版本号.小版本号-里程碑版本
        
        总版本号的变动一般表示框架的变动
        
        分支版本号:一般表示增加了一些功能
        
        小版本号:在分支版本上面进行bug的修复
        
        里程碑:SNAPSHOT(开发版本)-->alpha(内部测试版本)-->beta(外部的公测版本)-->release(发布版本)-->GA(稳定版本)
        
        user0.0.1-SNAPSHOT-->user0.0.1-Release--->user1.0.0SHAPSHOT  -->user1.0.0-Rlease
                           -->user0.1.0-SNAPSHOT-->user0.1.0-Rlease



7.   nexus私服的介绍,配置,安装

    1、下载并且解压缩
    
    2、将bin添加到环境变量
    
    3、nexus install将nexus安装到windows的服务中
    
    4、修改wrapper.conf文件:
    # Set the JVM executable
    # (modify this to absolute path if you need a Java that is not on the OS path)
    wrapper.java.command=C:\Program Files\Java\jdk1.6.0_23\bin\java

你可能感兴趣的:(项目协同管理)