栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

【学】Maven 笔记 | 不食花生的猫

【学】Maven 笔记 | 不食花生的猫

第一章 Maven 基础

网页地址
    视频地址:黑马程序员Maven全套教程,maven项目管理从基础到高级,Java项目开发必会管理工具maven_哔哩哔哩_bilibili依赖查询:https://mvnrepository.com/

     Maven :Maven – Available Plugins

     Nexus :Download

    有道云笔记:https://note.youdao.com/s/avkgonCe

Maven 标签

resources: 资源文件配置信息

resource: 资源文件配置信息

testResources: test 资源文件配置信息

testResource: test 资源文件配置信息

  以下内容属于 dependencies  

groupId: 【组织 ID】定义当前 Maven 项目隶属组织名称(通常是域名反写,例如 org.mybaits)

artifactId: 【项目 ID】定义当前 Maven 项目名称(通常是模块名称,例如 CRM、SMS)

version: 【版本号】定义当前项目的版本号

packaging: 【jar/war】定义该项目的打包方式

optional: 是否对上级隐藏 true / false

exclusions: 排除掉某些

exclusion: 具体排除掉哪一个 ()

  注意:不写版本 见代码片段 1.2  

scope: 范围

在主程序范围能不能用 【compile  文件夹范围内 】在测试范围能不能用【 test 】是否参与打包【 package 】

dependencyManagement:【依赖管理】 在 父pom 中做依赖管理

build

build 构建plugins 插件(们)plugin 插件

代码片段 1.1


    
     …… 
     …… 
      ……   
     
        
            
             generate-test-resources 
        
    
    

表 1.1 scope 范围

scope 参数

主程序

测试程序

参与打包

典型

compile

‍♀️

‍♀️

‍♀️

log4j

test

‍♀️

junit

provided

‍♀️

‍♀️

servlet-api

runtime

‍♀️

jdbc

表 1.2 scope 以来传递中的范围问题

项目 2 项目 1

compile

test

provided

runtime

compile

compile

test

provided

runtime

test

provided

runtime

runtime

test

provided

runtime

代码 1.2 排除下级依赖


    父类 组名  (定义  之后可以删除)
    父类 artifactId
    父类 版本  (定义  之后可以删除)
    
     
        
        
            a 的 groupId
            a 的 artifactId
        
    

依赖传递

若 b 项目引用 a 项目作为依赖,那么 a 项目引用的依赖 b 也引用直接依赖:直接引用的依赖间接依赖:通过引用其他项目获取其他项目的依赖

依赖冲突问题

深度优先原则:层级越浅优先级越高(直接依赖>间接以依赖)声明优先原则:两个间接以来全都是 2 层,那么看引用他们依赖的 a 与 b ,谁在前面使用谁的后者覆盖原则:当同一个 pom 文件中出现了同一个依赖的不同版本,后者覆盖前者对上级隐藏 :true排除下级依赖:

    Maven 生命周期与插件

全部过程

第二章 Maven 高级

分模块开发思路

将 controller 层、service 层等都单独划分为一个单独的 Maven 模块,通过接口进行连接

配置管理 | (插件同理)

配置一个新的 pom 文件用于管理所有的 pom

packaging:

聚合 pom后端 jarweb war

 pom  


     各层级文件的名称 
    ../ssm_pojo
    ../ssm_dao
    ../ssm_service
    ../ssm_controller
    ……

继承

        在 父 pom 文件中定义所有的依赖

   父 pom: 


    
        
            也可以写自己的项目,没两样
        
        
             …… 
             …… 
             …… 
        
    

  子 pom : dependency 中不用写 version  


    …… 
     …… 
     …… 
    
      ../ssm/pom.xml 




    
         …… 
         …… 
        
    

  同理插件也可以继承,同样删除 version  

继承与聚合

作用

聚合用于快速构建项目继承用于快速配置相同点

聚合与继承的 pom.xml 文件打包方式均为 pom,可以将两种关系只做到同一个 pom 文件中聚合与集成均属于设计型模块,并无实际的模块内容。不同点

聚合是在当前模块中的配置关系,聚合可以感知到参与聚合的模块有哪些继承是在子模块中配置关系,父模块无法感知哪些模块集成了自己

第三章 自定义变量

    1.2.3



${spring.version}


${version}


${settings.localRepository}


${user.home}


第四章 版本管理

工程版本

SNAPSHOT(快照版本)

项目开发过程中,为方便团队成员合作,解决模块间互相依赖和实时更新的问题,开发者对每个模块进行构建的时候,输出的临时性版本叫做快照版本(测试阶段版本)快照版本会随着开发的进站不断更新RELEASE(发布版本)

项目开发到进入阶段里程碑后,向团队外部发布较为稳定的版本,这种版本对应的构建文件是稳定的,几遍进行功能的后续开发,也不会改变当前发布版本的内容,这种版本成为发布版本

功能版本号约定

约定规范

...主版本:表示项目重大架构的变更,如 Spring5 相较于 Spring4次版本:表示有较大的的功能增加和变化,或者全面系统的修复漏洞增量版本:表示有重大漏洞修复里程碑版本:表示一个版本的里程碑(版本内部》。这样的版本同下一个正式版本相比,相对来说不是很稳定,有待更多的测试范例

5.1.9.RELEASE

第五章 多环境

配置资源文件对应信息

在 pom 文件中设定配置文件路径开启加载 pom 属性过滤功能使用   ${属性名}    格式引用 pom 属性


     …… 



    
        ../ssm_dao/src/main/resources
        ${project.basedir}/src/main/resources
        true
    

jdbc.username=${jdbc.username}

定义 生产/开发 环境


    
    
        
         pro_env 
           
         url1 
        
        true
    
    
    
    
         dev_env  
         
         url2       
    
    

使用

maven 中加入一个新的生命周期指令为:install -P dev_env

第六章 跳过测试

使用场景

整体模块功能未开发模块中某个功能未开发完毕单个功能更新调试导致其他功能失败快速打包……

使用方法

  插件:maven helper  

    方案 1:直接使用 IDEA 进行屏蔽方案 2:选中 pom 文件,右键 run以下命令:install -D skipTests方案 3:build 中设置跳过测试

    
        
            maven-surefire-plugin
            2.22.1
            
            
                
                true
            
            
            
                
                
                    **/Demotest.java
                
                
                
                
                    **/User*Test.java
                
            
            
        
     
           

第七章 Nexus 私服搭建与使用

Nexus私服

地址:Download

启动:进入 bin 文件夹 nexus run访问:localhost:8081

仓库分类
    宿主仓库 hosted
      保存无法从中央仓库获取的资源
        自主研发第三方非开源项目
    代理仓库 proxy
      代理远程仓库,通过 nexus 访问其他公共仓库,例如中央仓库
    仓库组 group
      将若干个仓库组成一个群组,简化配置仓库组不能保存资源,属于设计型仓库

Idea 与 Nexus 私服

Maven settings.xml 文件中的配置


    
        jim-release
        admin
        admin
    
    
        jim-snapshots
        admin
        admin
    



    
        jim
        *
        去 Nexus 私服仓库复制 
    

发布  【 maven deploy 】 


    
    
        
        
    

第八章 其他

settings.xml

/Users/hsk/DevTools/mavenRepository nexus-aliyun central Nexus aliyun <--镜像 url --> http://maven.aliyun.com/nexus/content/groups/public/

Maven 生命周期全过程

validate 校验initialize 初始化generate-sources 生成源代码process-sources 处理源代码generate-resources 生成资源文件process-resources 处理资源文件compile 编译process-classes 处理类文件generate-test-sources 处理测试源代码process-test-sources 生成测试源代码generate-test-resources 生成测试资源文件process-test-resources 处理测试资源文件test-compile 编译测试源码process-test-classes 处理测试类文件test 测试prepare-package 准备打包package 打包pre-integration-test 集成测试前integration-test 集成测试post-integration-test 集成测试后verify 验证install 安装deploy 部署

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773878.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号