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

maven学习

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

maven学习

文章目录
  • 1.1 maven安装
  • 1.2 maven环境变量配置
  • 1.3 Maven的本地仓库的配置
  • 1.4 在Idea中配置Maven
  • 1.5 依赖管理
    • (1)基本概念
    • (2)依赖的范围
    • (3)依赖的原则:解决jar包冲突
    • (4)依赖的排除
    • (5)统一管理目标Jar包的版本
  • 1.6 maven继承
  • 1.7 maven聚合
  • 1.8 idea创建maven工程

1.1 maven安装 1.2 maven环境变量配置
新建环境变量:MAVEN_HOME
赋值:D:Program FilesApachemaven

检验是否配置成功

mvn -version
1.3 Maven的本地仓库的配置
(1)Maven默认的本地仓库:~.m2repository目录。
说明:~表示当前用户的家目录


(2)Maven的核心配置文件位置:
解压目录D:apache-maven-3.2.2confsettings.xml


(3)本地仓库地址更改到D:LocalRepository,默认在C:UsersAdministrator.m2repository
D:LocalRepository


(4)配置阿里云镜像(下载速度快)

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

1.4 在Idea中配置Maven

1)设置Maven的安装目录及本地仓库

(2)配置Maven自动导入依赖的jar包

1.5 依赖管理 (1)基本概念
当A jar包需要用到B jar包中的类时,我们就说A对B有依赖。
例如:HelloFriend-1.0-SNAPSHOT.jar依赖于Hello-1.0-SNAPSHOT.jar。

如果A依赖B,B依赖C,那么A→B和B→C都是直接依赖,
而A→C是间接依赖。
(2)依赖的范围
1)compile(默认就是这个范围)
(1)main目录下的Java代码可以访问这个范围的依赖
(2)test目录下的Java代码可以访问这个范围的依赖
(3)部署到Tomcat服务器上运行时要放在WEB-INF的lib目录下
例如:对Hello的依赖。主程序、测试程序和服务器运行时都需要用到。

2)test
(1)main目录下的Java代码不能访问这个范围的依赖
(2)test目录下的Java代码可以访问这个范围的依赖
(3)部署到Tomcat服务器上运行时不会放在WEB-INF的lib目录下
例如:对junit的依赖。仅仅是测试程序部分需要。

3)provided
(1)main目录下的Java代码可以访问这个范围的依赖
(2)test目录下的Java代码可以访问这个范围的依赖
(3)部署到Tomcat服务器上运行时不会放在WEB-INF的lib目录下
例如:servlet-api在服务器上运行时,Servlet容器会提供相关API,所以部署的时候不需要。

4)其他:runtime、import、system等。
(3)依赖的原则:解决jar包冲突
1)路径最短者优先
2)路径相同时先声明者优先

这里“声明”的先后顺序指的是dependency标签配置的先后顺序。
(4)依赖的排除

    com.atguigu.maven
    OurFriends
    1.0-SNAPSHOT

    
    
        
            commons-logging
            commons-logging
        
    

(5)统一管理目标Jar包的版本

    4.0.0.RELEASE



    org.springframework
    spring-context
    ${spring.version}

1.6 maven继承
如果项目需要将各个模块的junit版本统一为4.9,
那么到各个工程中手动修改无疑是非常不可取的。
使用继承机制就可以将这样的依赖信息统一提取到父工程模块中进行统一管理。

(1)创建父工程

父工程的打包方式为pom

com.atguigu.maven
Parent
pom
1.0-SNAPSHOT

父工程只需要保留pom.xml文件即可

(2)在子工程中引用父工程


    com.atguigu.maven
    Parent
    1.0-SNAPSHOT

	../Parent/pom.xml


此时如果子工程的groupId和version如果和父工程重复则可以删除。

(3)在父工程中管理依赖

将Parent项目中的dependencies标签,用dependencyManagement标签括起来



    
        
            junit
            junit
            4.0
            test
        
    



在子项目中重新指定需要的依赖,删除范围和版本号

    junit
    junit

1.7 maven聚合

将多个工程拆分为模块后,需要手动逐个安装到仓库后依赖才能够生效。
修改源码后也需要逐个手动进行clean操作。
而使用了聚合之后就可以批量进行Maven工程的安装、清理工作。

(2)如何配置聚合?

在总的聚合工程中使用modules/module标签组合,指定模块工程的相对路径即可


    ../MakeFriend
    ../OurFriends
    ../HelloFriend
    ../Hello

1.8 idea创建maven工程

(1)点击File,选择New,再点击Project


(2)具体看图,别选错webapp了

(3)接下来输入各类名称,填完后直接next下一步,名称具体含义如下图

(4)配置maven信息,具体操作如下图

(5)添加配置 DarchetypeCatalog=internal,
添加原因:每次创建maven项目时, IDEA 要使用插件进行创建,这些插件当你创建新的项目时,它每次都会去中央仓库下载,这样使得创建比较慢。所以在创建maven项目时,应该让它找本地仓库中的插件进行项目的创建。

DarchetypeCatalog=internal


(6)完善maven-web项目模板
1.第一次加载maven项目比较慢,等待右下角的进度条加载结束,下面是刚建好的maven-web项目模板

2.上面的项目不完整,不能满足我们的开发需要,所以需要我们手动建设一些文件夹,需要兴建的文件夹我用红色标出,以下是maven项目的标准目录:

src/main/java
src/main/resources
src/test/java
src/test/resources

下面来构建目录,在main上右击New->Directory 新建java文件夹和resources文件夹

在src目录上右击New->Directory 新建test文件夹
在test目录上右击New->Directory 新建java和resources文件夹

下面只演示一个,其余类似

3.接下来就是把新建立的文件夹进行关联了,关联错了就得重新关联,这一定不能出错,关联方法如下图。
src/main/java 关联为 Sources Root
src/main/resources 关联为Resources Root
src/test/java 关联为Test Sources Root
src/test/resources 关联为 Test Resources Root

4.也可以右键项目,然后选择Open Module Settings打开项目配置页面更改,关联方法如下图。

5.以下是关联之后的maven-web项目的目录,配置完成

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

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

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