zoukankan      html  css  js  c++  java
  • 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/【建议使用这个】  

  • 相关阅读:
    JAVA-复数计算器
    第十三周总结
    java多线程
    写作的意义
    mysql删除有外键表数据
    Linux firewall防火墙设置
    linux安装ftp
    SELECT list is not in GROUP BY clause and contains nonaggregated
    primordials is not defined
    maven手动添加jar包
  • 原文地址:https://www.cnblogs.com/12344321hh/p/7507028.html
Copyright © 2011-2022 走看看