• 170911-关于maven的知识点


    简介:    什么是maven    

    是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的.    

    Maven的好处?    

    节省空间    

    就是对jar包的统一管理就是对jar包的统一管理,依赖管理    

    一键构建, 可跨平台      

    1.自动化构建和项目管理工具   

    Ant→Make→Maven→Gradle     

    2.Maven概述     

    ①读音:妹文、麦文   

    ②Maven作用一:自动化构建   

    ③Maven作用二:依赖管理   

    ④Maven作用三:项目信息管理        

    3.自动化构建   

    ①构建[build]:将程序员编写的代码从源文件到服务器部署的整个过程。    

    清理→编译→测试→报告→打包→部署→运行……   

    ②自动化构建:将构建过程中的各个操作步骤交给构建工具自动完成。   

     4.依赖管理   

    ①依赖复杂性    

    [1]路径最短者优先        

    MakeFriends --------> HelloFriends----------->Hello                               

    ||            

    log4j.2.1.14    ------->     log4j.2.1.17            

    [2]路径相同时,先声明者优先      

    MakeFriends --------> HelloFriends ------>log4j.2.1.14           

    -------------->OurFriends   ------->log4j.2.1.17

    ②版本冲突的解决方案    

    [1]调节原则:     

    [1]路径最短者优先原则     

    [2]路径相同时,先声明者优先原则    

    [2]排除原则        

    <dependency>       

    <groupId>javax.servlet</groupId>       

    <artifactId>servlet-api</artifactId>       

    <version>2.5</version>       

    <exclusions>        

    <exclusion>         

    <groupId></groupId>         

    <artifactId></artifactId>         

    <!--这里不需要指定版本号 -->        

    </exclusion>       

    </exclusions>       

    <scope>provided</scope>      

    </dependency>    

    [3]版本锁定原则      

    <dependencyManagement>      

    <dependencies>       

    <dependency>         

    <!--jar包坐标 -->        

    <groupId></groupId>        

    <artifactId></artifactId>        

    <version></version>       

    </dependency>      

    </dependencies>      

    </dependencyManagement>              

    版本锁定之后,后面再使用到这个的 依赖的时候,就不要写版本号了!       

    而且如果有多个相同的需要锁定的jar包的版本号一致的话,我们可以单独提取到properties标签中,       

    在properties标签中,子标签自己定义,标签的值就是版本号,下面只需要在依赖的地方用${}引用就可以了!                  

    ③依赖方式    

    [1]在pom.xml配置文件中使用dependencies/dependency元素配置依赖信息    

    [2]通过目标jar包的坐标找到被依赖的文件       

    ④依赖范围    

    默认compile:当前所依赖的jar包是当前Maven工程中所有类都需要使用的,最终也需要参与打包。    

    test:只是当前工程中的测试类需要,最终不参与打包。    

    provided:当工程在服务器上运行起来后,可以由服务器提供,所以也只是在开发或测试时使用,部署到服务器上时就不需要。    ……   

    ⑤一个自己开发的Maven工程,需要执行“安装”命令,才能够被放入到仓库中。

    5.项目信息管理   将项目信息生成一个静态站点,用于展示。             

    6.Maven程序本身安装   

    ①要求当前系统环境下配置了JAVA_HOME    

    在CMD命令行中输入:echo %JAVA_HOME% 如果能出来JDK的安装目录,说明我们配置了JAVA环境      

    ②将Maven的ZIP压缩包解压到一个非中文无空格目录下【maven.apache.org官方网站下载jar包】    

    apache-maven-3.3.9-bin.zip      

    ③.配置环境变量,用mvn -v查看是否正确配置了maven【要配置jdk,  maven3.3.9这个版本所需的jdk版本必须要1.7以上】

    path:     

    D:DevSoftapache-maven-3.3.9in    

    mvn -v查看maven版本       

    ④.先了解一下maven的目录结构:    

    projectname      

    -src       

    -main        

    -java        

    -package        

    -resources【配置文件或者说资源文件】       

    -test        

    -java        

    -package           

    -resources     

    pom.xml        

     按照上面的maven的目录结构创建一个maven项目,参照word文档!       

    ⑤当针对某个Maven工程执行诸如“编译”、“测试”、“打包”、“部署”等命令时,需要进入到pom.xml所在的目录下执行。     

    7.关于Maven联网   

    ①联网下载内容:当前命令需要的Maven插件   

    ②Maven主程序仅负责宏观调度,并不能执行具体的命令。而具体的命令是通过Maven插件完成的。   

    ③Maven主程序会首先到本地仓库目录下查找需要的插件,若没有则联网从“中央仓库”下载。若当前环境不能联网则无法执行构建命令。

    ④可以修改Maven默认的本地仓库路径,使其指向一个提前下载好的目录    配置文件路径     

    Maven解压目录/conf/settings.xml    

    修改     

    <localRepository>D:MavenRepository</localRepository>                       

    mvn -v 查看maven的版本号     

    clean     

    compile 编译     

    test  测试     

    package 打包(并将jar包放入到target的目录中)     

    site 生成一个站点          

    clean 删除target目录     

    install 安装jar包到本地仓库中          

    自动创建目录的两种方式:     

    1.mvn archetype:generate 按照提示进行选择     

    2.mvn archetype:generate -DgroupId=组织名,公司网址的反写+项目名            

    -DartifactId=项目名-模块名            

    -Dversion=版本号            

    -Dpackage=代码所存在的包名                    

    8.Project Object Model项目对象模型   

    ①Maven将一个Java工程的相关信息封装后得到的对象。简称POM。   

    ②POM配置集中体现在pom.xml文件中,作为一个Maven工程,pom.xml是最核心的配置文件,作用相当于动态Web工程的web.xml。

    9.约定的目录结构   

    ①Maven之所以能够实现自动化构建,其中一个很重要的原因是要求将特定的文件保存在指定的目录中。    

    Hello [工程根目录]     

    --src [存放源代码文件]      

    -----main [存放主程序目录]       

    ---------java [存放.java源文件]       

    ---------resources [资源文件或配置文件]      

    -----test [存放测试程序目录]       

    ---------java [存放.java源文件]       

    ---------resources [资源文件或配置文件]     

    --pom.xml 核心配置文件]   

    ②思想:Convention Over Configuration 约定优于配置

    10.maven的几个概念:    

    1.坐标    

    ①数学坐标:平面中使用横纵两个坐标系可以唯一的定位平面中的任何一个点。     

    向量x:横坐标     向量y:纵坐标         

    ②使用三个向量在Maven仓库中唯一的定位一个Maven工程。         

    向量groupid:公司或组织的名称+项目名称     向量artifactId:模块名称     向量version:模块版本     

    <groupId>com.neuedu.maven</groupId>     

    <artifactId>Hello</artifactId>     

    <version>0.0.1-SNAPSHOT</version>         

    ③如何根据坐标zhao到仓库中查找对应的Maven工程        

    坐标      

    <groupId>org.springframework</groupId>      

    <artifactId>spring-core</artifactId>      

    <version>4.0.0.RELEASE</version>     

    仓库中的路径      

    org/springframework/spring-core/4.0.0.RELEASE/spring-core-4.0.0.RELEASE.jar          

    ④如何查找指定jar包的坐标:        

    1.从maven仓库下载        

    http://search.maven.org/      

    http://mvnrepository.com/【建议使用这个】  

  • 相关阅读:
    Sprinig.net 双向绑定 Bidirectional data binding and data model management 和 UpdatePanel
    Memcached是什么
    Spring.net 网络示例 codeproject
    jquery.modalbox.show 插件
    UVA 639 Don't Get Rooked
    UVA 539 The Settlers of Catan
    UVA 301 Transportation
    UVA 331 Mapping the Swaps
    UVA 216 Getting in Line
    UVA 10344 23 out of 5
  • 原文地址:https://www.cnblogs.com/12344321hh/p/7507028.html
Copyright © 2020-2023  润新知