网站建设资讯

NEWS

网站建设资讯

maven快捷使用说明

1、下载maven : https://maven.apache.org/download.cgi

创新互联2013年开创至今,先为修水等服务建站,修水等地企业,进行企业商务咨询服务。为修水企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

 配置环境变量:M2_HOME:D:\apache-maven-3.5.4
                :path:%M2_HOME%\bin;
    测试maven:cmd  mvn -v

2、groupId的值就是项目的包名

   artifactId的值就模块名
   version版本

   例如:
    com.maven.demo
    maven01-model
    0.0.1SNAPSHOT

    maven的目录结构
        project
            src
                -main
                    -java
                        -package
                -test
                    -java
                        -package
                resources
        mvn compile
        mvn test
        mvn package

3、maven常用构建命令

    mvn -v 查看maven版本
        compile 编译
        test 测试
        package 打包
        clean 删除target
        install 安装jar包到本地仓库中(先找pom.xml依赖,在找本地库,最后找网上中央库)

maven自动建立目录骨架
第一种方式 mvn archetype:generate

第二种方式 mvn archetype:generate -DgroupId=组织名,公司网址的反写+项目名 
                                      -DartifactId=项目名-模块名 
                                      -Dversion=1.0.0SNAPSHOT 
                                      -Dpackage=代码存在的包

maven 坐标和仓库
        基本坐标:
            构件
            com.maven.demo
            maven01-model
            0.0.1SNAPSHOT
        仓库:
            本地仓库
            远程仓库(maven-model-bulider)
        镜像仓库
            \apache-maven-3.5.4\conf\settings.xml (152行)
            
                maven.net.cn
                central  
                central mirror in china
                http://maven.net.cn/content/groups/public
            
        更改仓库位置(默认路径:C:\Users\CHUAN\.m2)
            \apache-maven-3.5.4\conf\settings.xml (53行)
            

eclipe安装maven插件以及创建maven项目
        Preferences-Maven-Installations 添加maven目录
                         -User Settings 添加maven的setting.xml(.\apache-maven-3.5.4\conf\setting.xml)

maven的生命周期和插件
        完整的项目构件过程包括:
        清理、编译、测试、打包、集成测试、验证、部署
        maven生命周期
        clean 清理项目
            pre-clean 执行清理前的工作
            clean 清理上一次构建生成的所有文件
            post-clean 执行清理后的文件
        default 构建项目(最核心)
            compile test package install
        site  生成项目站点
            pre-site 在生成项目站点前要完成的工作
            site 生成项目的站点文档
            post-site 在生成项目站点后要完成的工作
            site-deploy 发布生成的站点到服务器上

maven生命周期
        clean、compile、test、package、install

maven中pom.xml解析
        4.0.0 指定当前pom的版本
        坐标信息
        组织名,公司网址的反写+项目名 主项目的标识
        项目名-模块名 模块的标识
        
         当前项目的版本号
        
 打包的方式

 项目描述
项目的地址
项目描述
项目开发人员
许可
组织

重要:依赖列表
        
            
                
                
                
                
                test 依赖范围
                true/默认false 设置依赖是否可选,
                                                    如果是false子项目是默认继承的
                                                    如果是true子项目必须显示引入该依赖
                 排除依赖传递列表
                    
                    
                
            
        
         依赖管理包含多个依赖,并不会被运行,主要定义到父模块让子模块继承用的
            
                
                   
            
        
        
            插件列表
                
                    
                    
                    
                
            
        

用于子模块对父模块的继承

聚合多个模块

maven 依赖范围
         三种classpath: 编译  test测试  运行

        compile:默认的范围,编译测试运行都有效
        provided:在编译和测试有效
        runtime:在运行的时候有效
        test:只在测试有效 典型应用junit
        system:在编译和测试有效  与本机系统相关联,可移植性差
        import:导入的范围,它只使用在dependencyManagerment中,
               表示从其他的pom中导入dependecy的配置
        http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html      

    maven 是依赖传递特性的
        a-pom.xml
        b-pom.xml
        c-pom.xml
        如果b集成a,c会自动集成a。

        如果创建maven项目 jre system library 显示jre5 但是 jre里面是1.8
        修改setting.xml(188行)
        
                jdk-1.8
                
                    true
                    1.8
                
                
                    1.8
                    1.8
                    1.8
                
        

maven 依赖冲突
        1、短路优先
        A->B->C->X(jar)
        A->D->X(jar)优先解析
        例如:A依赖2.4jar B依赖A和2.0jar C依赖B 所以C依赖2.0jar

        2、先声明先优先
        如果路径长度相同,则谁先声明,先解析谁
        例如:A依赖2.4jar B依赖2.0jar C中pom A在B前  所以C依赖2.4jar

    Maven 聚合和继承
        maven聚合:
            父模块的pom文件修改
            pom
            
                子模块项目名一
                子模块项目名二
            

maven继承:
            如果每个module 也就是每个小的模块中的pom 有重复的 jar 
            比如junit 这样可以用继承。。 
            创建父类项目,标签元素值修改为pom 
            然后加一个标签 把依赖放到里面。。 
            其中的版本号, 可以通过引用来表示,需要添加 标签。

子类用标签 引用父pom.xml坐标
        例如:新建父类中pom.xml如下:
            pom
            
                3.8.1
            
            
                junit
                junit
                ${junitversion}
                test
            

子类pom.xml
            
                父pom.xml的坐标
            
            
                junit
                junit
            

使用maven构建web项目
        添加java servlet api的坐标 scope为provide
        手动创建maven骨架文件
        检查 java build path outfolder 为/target/classes/目录
        项目转换成web项目,右键属性,project facets为Dynamic 勾选
        发布右键属性,deployment assembly 把test都去掉
        在pom.xml使用packaging命令打成war包
        添加jetty maven的插件到pom.xml
            
                    
                    
                        package
                        
                            run
                        
                    
                

总结:

maven下载和环境搭建
maven目录骨架说明


网站名称:maven快捷使用说明
路径分享:http://cdweb.net/article/jpoeho.html