栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Maven笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Maven笔记

一、简介 1、介绍

maven主要服务于基于java平台的项目构建,依赖管理和项目信息管理。

就像是java的工具库,想用什么工具就在maven里面引入对应的依赖

瀑布模型:需求明确,传统开发模式,每一步按部就班。

敏捷开发:快速迭代,可以比较创新,需求不需要很明确,流行的开发模式。

2、项目构建

如果项目比较复杂的话,项目构建(build)会花很多时间,比方说有很多依赖,很多微服务。maven实现了这个过程的自动化,只需要一条命令就能像流水线一样完成。

3、工具 1️⃣ Ant构建

早期的构建工具,缺点是xml脚本编写格式让xml文件特别大,但在当时很流行,控制效果也很好,非常灵活。

2️⃣ Maven

**项目对象模型,通过其描述信息来管理项目的构建,报告和文档的软件项目管理工具。**填补了Ant缺点,并且首次支持从网络下载功能,使引入依赖变得非常非常方便快捷,仍然采用xml作为配置文件格式。Maven专注于依赖管理,使用java编写。

3️⃣ Gradle

结合以上两个的优点,继承了Ant的灵活和Maven的生命周期管理,被Google作为android御用管理工具。使用DSL格式,让脚本更简洁。

4️⃣ 总结

Ant比较早期,一些传统的软件公司会使用,Maven是目前主流的构建工具,gradle比较新型,未来有发展空间。

4、Maven四大特性

总结来说就是规定了一些规范,让依赖管理变得非常舒服。

1️⃣ 依赖管理系统

在java世界中,可以用groupId、artifactId、version组成的Coordination(坐标)唯一标识一个依赖。

① groupId

项目隶属的实际项目-公司名称。一个项目可能有多个模块

② artifactId

定义项目中的一个Maven模块-项目名,推荐的做法是使用实际项目名称作为artifactId的前缀,比如spring-bean

③ version

定义项目当前所处的版本

这样就能直接在网络上引入依赖,不需要下载到本地了,非常非常灵活方便。

2️⃣ 多模块构建

可以打一个pom包,然后构建子包,这样在父包引入的依赖所有子包都可以直接用,树形结构,非常棒。

3️⃣ 一致的项目结构

Conversion over configuration 约定大于配置,制定了项目目录标准,解决不同IDE文件目录不一致的问题。

4️⃣ 一致的构建模型和插件机制

    
        
            org.apache.maven.plugins
            maven-source-plugin
            2.1.2
        
    

二、IDEA编辑器集成Maven环境

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ktGqJRcq-1632634543674)(C:UserscaoybAppDataRoamingTyporatypora-user-imagesimage-20210925213624862.png)]

这个地方可以全局配置自己的maven,我目前没感受到idea自带的有什么问题,先记录一下。

三、Maven项目的创建 1、Java项目 1️⃣ 创建Java项目

直接new Maven项目就行。

创建完之后,右下角弹出提示框,选择maven自动导入 "Enable Auto-import"

2️⃣ 编译项目

创建一个configuration

然后就可以启动了

2、Web项目

换个模板即可,之前是quickstart,换成webapp

1️⃣ 启动项目

创建完需要做一些修改,在pom.xml里面jdk改成1.8 junit(单元测试)改成4.12 删除pluginManagement标签。

2️⃣ 添加web部署的插件

添加到build里面

① Jetty插件

            org.eclipse.jetty.aggregate
            jetty-all
            9.0.0.v20130308
        
        
            javax.servlet
            javax.servlet-api
            3.1.0
        
        
            org.eclipse.jetty
            jetty-jsp
            9.0.0.v20130308
      

            
                org.eclipse.jetty
                jetty-maven-plugin
                9.3.7.v20160115
                
                    
                        8090
                        localhost
                    
                    1
                
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.1
                
                    1.8
                    1.8
                    UTF-8
                
            
        
②Tomcat插件
  

      
        org.apache.maven.plugins  
        maven-compiler-plugin  
        2.3.2  
          
            1.7  
            1.7  
          
      
    
   org.apache.tomcat.maven
   tomcat7-maven-plugin
   
      
      8000
      
      /erp
   
     
  
 

启动命令换成jetty:run

四、Maven仓库的基本概念

Maven仓库分为两类:本地仓库和远程仓库

如果本地有直接用本地,没有去远程找,找不到就报错。

远程仓库分为三种:中央仓库,私服,其他公共库

中央仓库是默认配置下,Maven下载jar包的地方。

私服是一种特殊的远程仓库,在局域网架设一个私有的仓库服务器,用其代理所有外部的远程仓库,能节省带宽和时间,

可以在maven配置文件conf目录下的settings.xml来指定仓库路径。

1、中央仓库

由于原始的本地仓库是空的,maven必须知道至少一个可用的远程仓库,才能执行maven命令的时候下载到需要的构件。中央仓库就是这样一个默认的远程仓库。

2、私服

一种特殊的远程仓库,是架设在局域网内的仓库服务。当maven需要下载构件时,先去私服找,没有去外部远程仓库下载,然后缓存在私服上,为maven提供。

此外,也可以从本地上传到私服提供局域网中其他人使用。

也需要配置。


	
    	
        	true
        
        public
        Public repositories
        http://xxxx:xxx/content/groups/public
    
    
    	getui-nexus
        http://mvn.gt.igexin.com/nexus/content/repositories/releases
    

公司建立私服的好处:

  • 节省自己的外网带宽
  • 加速maven构建
  • 部署第三方控件
  • 提高稳定性
  • 降低中央仓库的负荷
3、其他公共库

常用的阿里云仓库配置


	nexus-aliyun
    central
    Nexus aliyun
    http://maven.aliyun.com/nexus/content/groups/public

五、Maven的打包操作 1、 目录结构

不同环境不同目录

2、 添加Profile配置

3、设置资源文件配置

4、执行打包操作

直接在idea提供的可视化面板里操作生命周期即可

六、Maven依赖的基本概念 1、依赖的基本配置

2、依赖范围

根据环境判断依赖是否生效

3、传递性依赖

Maven能够解析间接依赖,以传递性依赖的形式引入到项目中,也就是说,当我们引入某个依赖的时候,不需要考虑他的依赖。

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

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

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