maven项目管理工具入门到精通

1. 课程安排

maven入门
概念
配置

2. maven入门

2.1 为什么产生maven管理工具

maven项目管理工具入门到精通_第1张图片

在以往的方式中,分公司想要使用总部的jar包,只能直接把jar包复制到开发工具中,但是总部也在持续开发最新的jar包,分公司为了使用最新的版本,只能再次复制,这样影响了开发效率。

为了解决公司同步开发所使用到的项目,出现maven项目管理工具。
在maven中jar包称为依赖。
使用maven管理软件的依赖(jar),避免团队反复的复制(jar)
maven管理工具具有依赖传递性,使用maven管理工具可以自动导入相关的依赖(jar)进行开发。

2.2. 什么是maven

Maven项目对象模型 (POM),可以 通过一小段描述信息【配置信息】 来管理项目的 构建,报告和文档的项目管理工具软件。

主要的功能
方便项目的发布(项目是有生命周期的)—>项目从没有到有的一个过程。
在众多的依赖中进行管理(项目中的依赖共享)—>自己跟别人的关系。
总结
一. 每个项目都有一个对象模型(Project Object Model): POM(一个maven项目必须有一个配置文件pom.xml文件)
二. 有一个标准的集合(在项目中进行一系列的配置)
三. 他是一个生命管理工具
生命周期:清理–>编译–>测试–>报告–>打包–>部署
四. 有一个管理系统,只需要配置一下即可使用,前提必须按照maven的规则办事
使用maven的前提条件:需要联网,在maven的项目中,是没有任何依赖的,在使用依赖时,会从互联网下载到本地进行使用

3.maven的下载与安装

下载地址(官网):http://maven.apache.org/
选择你要下载的版本
maven项目管理工具入门到精通_第2张图片
安装maven时,需要在jdk的环境下运行,需要安装好jdk后才能安装。
环境变量必须配置在jdk之后

配置maven环境变量

新增MAVEN_HOME
maven项目管理工具入门到精通_第3张图片
在PATH中加入%MAVEN_HOME%/bin(添加在jdk之下)
maven项目管理工具入门到精通_第4张图片

Win+R 输入cmd进入命令窗口输入mvn -v 查看是否安装成功
看到以下信息即为安装成功
maven项目管理工具入门到精通_第5张图片

maven的本地仓库

开发工具在运行项目时会用到一些依赖,这些依赖按照一定的规则存放在本地计算机下的一个目录路径下,这个目录称为maven的本地仓库

maven的本地仓库配置

在maven安装目录下的conf目录有一个settings.xml文件,里面定义了本地仓库的地址
maven项目管理工具入门到精通_第6张图片
找到localRepository
maven项目管理工具入门到精通_第7张图片
可以定义本地仓库的地址,不定义默认在C:\Users\(用户名)\.m2\repository
可以更改目录路径:(本地仓库)
D:/path/to/local/repo
maven项目管理工具入门到精通_第8张图片
这些都是在网络上下载回来的依赖

maven的项目类型

普通的java项目:打包jar包
普通的web项目:打包war包
maven本身项目:打包pom包

4. 手动创建项目

4.1 创建maven普通java项目

示例:随便创建一个目录在导航栏输入cmd进入命令行窗口,输入一下代码

mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.hotdas.maven.quickstart -DartifactId=simple -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0.0-snapshot

maven项目管理工具入门到精通_第9张图片
创建成功
maven项目管理工具入门到精通_第10张图片

此时查看目录会发现多了一个文件夹,这就是我们刚刚创建的项目文件夹
在这里插入图片描述
maven项目管理工具入门到精通_第11张图片
java项目的目录结构:
–src : 代码的目录
–src/main: 源代码目录(包括java代码和配置)
–src/main/java : 代表java的码代码
–src/test : 测试代码目录
–src/test/java : java的测试代码
–pom.xml -->每个模目都有一个核心的配置文件pom

每个项目都有一个pom.xml文件
maven项目管理工具入门到精通_第12张图片

4.2 手动创建maven的web项目

mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.hotdas.maven.quickstart -DartifactId=simple1 -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1.0.0-snapshot

maven项目管理工具入门到精通_第13张图片

4.3 maven项目构建相关命令

(后面的命令运行,必须会运行前面的命令)
编译: mvn compile 将项目变成字节码文件
测试: mvn test 将项目中的test变成字节码文件
清除: mvn clean 将编译后的文件清除掉
打包: mvn package 将项目进行打包
运行项目: mvn run 运行当前项目
项目发布: mvn intall 将本地项目安装到仓库
项目部署: mvn deploy 将本地项目部署到生产环境
示例:
进入simple目录导航栏输入cmd,运行mvn package
maven项目管理工具入门到精通_第14张图片
打包成功
maven项目管理工具入门到精通_第15张图片
会多出target目录
maven项目管理工具入门到精通_第16张图片
mvn clean清除刚刚打包的内容
maven项目管理工具入门到精通_第17张图片
清除后target被删除
maven项目管理工具入门到精通_第18张图片

5. maven项目编辑工具的转换

5.1 转换为eclipse项目

mvn eclipse:eclipse 将maven项目转换为eclipse项目
mvn eclipse:clean 将maven的eclipse配置清除

5.2 转换为idea项目

mvn idea:idea 将maven项目转换为idea项目
mvn idea:clean 将maven的idea配置清除

6. settings.xml配置文件

位置:安装目录下的conf目录下
maven项目管理工具入门到精通_第19张图片

属性
localRepository:配置本地仓库目录
interactiveMode: 是否需要获取用户输入的模式
offline : 是否要离线模式下运行maven
pluginGroups: 插件组,在默认的情况下maven使用到的插件
proxies : 设置代理;通过代理访问外面的仓库
servers : 配置服务器的配置 例如:安全配置待
mirrors: 镜像库 默认使用全球最大的中央仓库
profiles: 配置多种参数
profile: 配置单个参数
activeProfiles: 让多个配置生效
activeProfile: 让单个配置生效

7.idea集成maven开发环境

1、菜单栏选择File–>settings
maven项目管理工具入门到精通_第20张图片
2、选择Build,Execution,Deployment–>Build Tools–>Maven
选择自己的maven环境和settings.xml
maven项目管理工具入门到精通_第21张图片

8. 使用idea创建项目

(1)点击Create new Project
maven项目管理工具入门到精通_第22张图片
2、点击maven,自行选择是否使用骨架创建,我这里不勾选,自己手敲,Next
maven项目管理工具入门到精通_第23张图片
3、输入GroupId(用于区分全球项目) 和ArtifactID(相当于项目名称)–>Next
maven项目管理工具入门到精通_第24张图片
4、选择项目的位置,finish
maven项目管理工具入门到精通_第25张图片
5、选择Enabled Auto-Import,自动导包
maven项目管理工具入门到精通_第26张图片
6、输入packaging标签选择项目的类型,我这里选择的是web项目
maven项目管理工具入门到精通_第27张图片
packaging:代表打包方式: pom,jar,war

7、补全web项目的结构
maven项目管理工具入门到精通_第28张图片
web.xml文件内容




    Tomcat Application
    
        Tomcat Application
    


8、在webapp目录下新建一个index.jsp文件
maven项目管理工具入门到精通_第29张图片

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    这是我的网页


    

Hello World!

9、配置tomca运行web 项目
在pom.xml文件输入



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


点击右上角的Add Configuration…
maven项目管理工具入门到精通_第30张图片
点击+
maven项目管理工具入门到精通_第31张图片
选择maven
maven项目管理工具入门到精通_第32张图片
输入一下信息配置,点击Apply
maven项目管理工具入门到精通_第33张图片
配置好了tomcat
maven项目管理工具入门到精通_第34张图片
点击运行项目
maven项目管理工具入门到精通_第35张图片
在浏览器输入一下地址
maven项目管理工具入门到精通_第36张图片
运行效果
maven项目管理工具入门到精通_第37张图片

9. maven 进阶-配置详解

9.1. maven仓库

在maven中,仓库分为本地仓库和远程仓库。
其中远程仓库最大的是中央仓库。

远程仓库
自定义仓库(第三方仓库/私服)
中央仓库

9.2 依赖下载流程(没有配置私服)

在这里插入图片描述

9.3 依赖下载流程(配置私服)

在这里插入图片描述

9.4 第三方仓库

在默认情况下,maven是从中央仓库下载依赖,当配置私服时,优先从私服下载依赖。
nexus:第三方仓库(完全免费)
artifactory:第三方仓库(收费)

9.5 坐标

坐标: 是区分全球所有项目的.

groupId : 组织 --用于区分公司全球项目的,一般是域名倒写
artifactId : 项目标识 – 用于区公司内容的项目
version : 版本号 --标注项目使用版本的

获取坐标方式: 从中央仓库获取
https://mvnrepository.com/
例如搜索mysql-connect
maven项目管理工具入门到精通_第38张图片
选择对应的版本
maven项目管理工具入门到精通_第39张图片
复制这里的内容
maven项目管理工具入门到精通_第40张图片
把复制的内容添加到项目的pom.xml文件,刷新

maven项目管理工具入门到精通_第41张图片
刷新后可以看到依赖已经下载
maven项目管理工具入门到精通_第42张图片
在本地仓库就会有对应的版本下载了
maven项目管理工具入门到精通_第43张图片

9.6 聚合模块

在项目中new一个module,跟创建工程的步骤一样。。
maven项目管理工具入门到精通_第44张图片
比如该工程需要依赖一个logs日志
在这里插入图片描述
finish后可以看到工程中多了logs模块,原工程中的pom.xml文件中的modules标签就代表了工程有什么模块
maven项目管理工具入门到精通_第45张图片
在logs模块中的pom.xml文件有parent标签代表着该模块的父类是什么
maven项目管理工具入门到精通_第46张图片

模块: 就是工程拆分的部分
使用:


    logs

父项目(继承):


    demo2
    com.hotdas
    1.0-SNAPSHOT

在logs模块中,也继承了父项目的依赖
maven项目管理工具入门到精通_第47张图片

9.7 依赖

dependencies : 作用用于引入工程的依赖(jar)

例如:


    
        mysql
        mysql-connector-java
        8.0.25
    

maven项目管理工具入门到精通_第48张图片

9.8 依赖管理器

dependencyManagement : 作用用于管理依赖的版本,使用到时可以手动导入.不会出现传递导入.


    8.0.25
    5.0.0



    
        
            mysql
            mysql-connector-java
            ${mysql.version}
        
    

maven的两大核心: 依赖的管理和项目的构建.

9.9. 依赖的传递性

例如: A --> B 那么导入A依赖时,B依赖也会导入进来.

9.10. 依赖的调节原则

依赖调节原则:
1. 路径近者优先原则
比如: A–>B–>C–>D (1.0版本)
H–>D–>E (2.0版本)
导入的是D版本为2.0版本

2. 路径相同,第一声明优先的原则.
例如: A–>C–>D (1.0版本)
H–>F -->D(2.0版本)
则导入D (1.0版本)

9.11. 依赖排除

不想使用的依赖可以排除掉


    
        spring-core
        org.springframework
    

9.12. 依赖的作用范围scope

compile: 全范围有效,在编译阶段使用到的依赖
test: 测试范围 ,在测试阶段使用的依赖
provided: 编译与测试范围,在编译与测试使用到的依赖.
runtime: 运行时用到的范围,项目运行时使用到的依赖
system: 系统范围,项目使用到系统内置的函数等

依赖范围 对编译有效 对测试有效 对运行有效
compile
provided
test
runtime
system

10. maven管理依赖常见的问题

因为远程的依赖无法下载到本地仓库,如果maven第一次下载依赖失败,maven是不会再次进行下载了(maven会在下载的jar包中生成一个.lastupdated的文件,用于标识该依赖,不再下载)

11. 私服(第三方仓库,内部仓库)

13.1. 安装私服
maven项目管理工具入门到精通_第49张图片
解压到一个目录下即可使用,为了跟自已系统中的应用程序端口不冲突,建议修改:
maven项目管理工具入门到精通_第50张图片
maven项目管理工具入门到精通_第51张图片

以管理员的身份安装私服到系统服务:
maven项目管理工具入门到精通_第52张图片
maven项目管理工具入门到精通_第53张图片

访问私服的服务器:
http://localhost:9999/nexus/#welcome
maven项目管理工具入门到精通_第54张图片

默认的登录用户与密码:
admin
admin123
maven项目管理工具入门到精通_第55张图片

13.2. maven使用第三方仓库
maven项目管理工具入门到精通_第56张图片

配置自已的私服:

  
     
     	nexus
     	*
     	Human Readable Name for this Mirror.
     	http://localhost:9999/nexus/content/groups/public/
     
  

maven项目管理工具入门到精通_第57张图片

13.3. 配置阿里的仓库


     	nexus
     	*
     	Human Readable Name for this Mirror.
     	https://maven.aliyun.com/repository/public

maven项目管理工具入门到精通_第58张图片

在下载本地仓库时,用powershell进入demo目录执行 mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.hotdas.maven.quickstart -DartifactId=simple1 -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1.0.0-snapshot出现ERROR:The goal you specified requires a project to execute but there is no POM in this directory (E:\demo). Please verify you invoked Maven from the correct directory. 和在demo目录导航栏cmd打开无法识别mvn命令,在桌面Win+R cmd打开进入demo目录成功执行
之后在demo导航栏目录cmd又可以成功执行,原因可能是配置的环境变量没那么快生效,所以无法识别
maven项目管理工具入门到精通_第59张图片
没加版本号之前下载失败,加了之后成功

你可能感兴趣的:(大数据)