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

Maven概述

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

Maven概述

Maven是什么

Maven是一个Apache公司的开源项目,是项目构建工具。用来管理项目。

  1. Maven的好处

使用maven可以在项目中不用导入项目依赖的jar包,省去了下载和导入jar包的过程,使项目的大小得
到了缩减。

  1. Maven的两大核心

(1) 依赖管理:对项目需要使用到的jar包进行管理。
(2) 项目构建:项目在编码完成后,对项目进行编译、测试、打包、部署。

Maven仓库

Maven通过一个仓库来存放jar包,在Maven项目中,不再需要导入这些jar包,只需要告诉项目所依赖
的jar包的坐标,Maven就会自己将我们项目所需要的jar包给我们依赖进来。在maven中仓库有三种:
(1)本地仓库:本地仓库就在自己的机器上,我们可以在自己的机器上创建一个maven仓库,然后就
需要的jar包导入进去,就可以在项目中引用。
(2)中央仓库:中央仓库是最大的一个仓库,由Apache组织来负责维护,几乎包括了现在所有的jar包
(有一些涉及版权问题没有,比如:oracle数据库的连接jar包),但是中央仓库的访问速度非常慢。
(3)私服仓库:私服仓库在公司局域网内,公司可以在自己的局域网内创建一个仓库,将项目所需要
的jar包存放在此仓库中,这样整个项目组就都可以使用此仓库提供的jar包,不再需要在自己本地创建仓
库来保存jar包。

Maven如何在仓库中查找包
Maven在仓库中查找jar包需要使用到jar的“坐标”信息:
公司名称groupId+项目名称artifactId +版本信息version

pom.xml

项目对象模型(Project Object Model)


4.0.0

...
...
...
...
...


...
...
...
...

...
...

...
...
...
...
...
...
...
...

...
...
...
...
...
...
...
...
...

Maven安装
  1. 解压Maven
  2. 创建本地仓库


创建repository本地仓库。

  1. 修改配置文件settings.xml
D:/masterSpring/repository
  1. 修改中央仓库镜像


alimaven
central
aliyun maven
http://maven.aliyun.com/nexus/content/repositories/central/



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


central
Maven Repository Switchboard
http://repo1.maven.org/maven2/
central


repo2
central
Human Readable Name for this Mirror.
http://repo2.maven.org/maven2/


ibiblio
central
Human Readable Name for this Mirror.
http://mirrors.ibiblio.org/pub/mirrors/maven2/


jboss-public-repository-group
central
JBoss Public Repository Group
http://repository.jboss.org/nexus/content/groups/public


google-maven-central
Google Maven Central
https://maven-central.storage.googleapis.com

central



maven.net.cn
oneof the central mirrors in china
http://maven.net.cn/content/groups/public/
central



  1. . 在Idea中配置maven


Maven构建项目

标准maven项目结构:

配置环境变量后的项目构建命令:

Maven配置远程Tomcat

    src/main/java
    
        
            src/main/resources
        
    
    
       
 
        
 
        
            org.apache.tomcat.maven
            tomcat7-maven-plugin
            2.2
            
                9000   //配置Tomcat的访问端口
                /spring5-webmvc-demo   //配置Web的上下文路径
            
        
 
    

依赖配置

分模块开发与设计

在web开发中,MVC架构(表现层,数据链路层,持久层)都是在同一个模块下,有同一个或几个开发者协同开发。在企业中一个web系统是十分庞大的,一个业务系统都有若干人分模块开发。在同一个模块下就无法实现。

Maven提供了分模块开发来满足企业开发的需求。将mvc架构分成不同的模块,通过pom实现私服的引用,这样就满足多人协同开发。


以之前完全注解开的ssm项目为例:ssm完全注解开发

  • domain(pojo)的模块差分:

文件---->项目模块------>新建


Maven------>下一步

在创建完成后删除不必要的源文件目录或资源目录。


pojo模块也不需要导入任何依赖。

在创建其他模块是会出现报错的情况,是由于pom中没到导入依赖,按需导入即可:


当公共依赖导入后,pojo的对象还是报错,就需要导入自定义的模块依赖。依赖都是jar工具包,而模块是一个个的项目,该如何操作呢?

即该如何导入pojo的自定义模块呢?在使用maven构建工具时,可以使用mvn命令操作项目,需要哪个模块的工具包,就可以使用package命令将其打包为jar包。有了工具包该如何导入依赖呢?maven的install命令可以将jar包上传到本地仓库,那么就可以先打包再上传最后使用依赖导入就可以了。

Maven生命周期知道上传命令包含了前面的任务,直接上传命令install即可。


出现了jar包,在所需的模块按依赖规范导入即可。


在所需要的pom中导入该依赖。


导入自定义依赖后,POJO对象可以正常使用。

其他模块也按此类推。

依赖管理
  1. mvc架构的不同的层都可以分模块开发,分工合作。
  2. 各个模块在使用时必须先上传到本地仓库,才能在其他模块通过导入依赖使用。
  3. 当依赖中出现相同的资源时,层级越深优先级越低、依赖配置的位置越后有覆盖权。

可选依赖
可选依赖是指对外隐藏所依赖的资源:


   org.example
    ssm_dao
    1.0-SNAPSHOT
    true

依赖隐藏后将不再具有传递性。下一个引入该依赖的模块需要重新导入。

排除依赖
排除依赖是指主动断开依赖资源,不需要某个模块。


    
        
        
    

聚合与继承


各个模块之间存在依赖关系,往往会有同步更新,需要一个总的pom来管理直接模块。新建parent模块,来管理其他模块。**将打包方式改为pom,通过模块属性实现管理。



    4.0.0

    org.example
    ssm_parent
    1.0-SNAPSHOT
    pom

    
        8
        8
    

    
    
        ../ssm_config
        ../ssm_controller
        ../ssm_dao
        ../ssm_pojo
    




继承

模块之间存在依赖关系时,当不同的模块具有相同的资源时,对每个模块都导入还要保持版本的一致很麻烦,同理版本控制也可以交由父模块管理。

在子模块继承父模块通过parent属性:

    
        ssm_dao
        org.example
        1.0-SNAPSHOT
        ../ssm_parent/pom.xml
    

继承父模块的pom

继承的版本控制,在继承时,凡是继承了父类的模块都在子类中出现,而有些模块是独立的不是公用的,就需要进行模块管理:

    
        
            
                
                
                
            
        
    

继承的具体·步骤:





属性管理

在每个依赖中都需要要导入版本,像spring的全家桶,版本都是一样的,如何需要修改的话每个都要改,pom提供了properties属性来进行批量版本控制。

    
        8
        8

        
        
        5.1.19.RELEASE
        
    

版本管理:

测试

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

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

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