一、Maven简介

Maven 是一个项目管理工具,可以对Java项目进行构建、依赖管理,是一个自动化构建工具。

自动化构建工具:将原材料(java、js、css、html....)->产品(可发布项目)

编译-打包-部署-测试->自动构建

Maven的作用:

1、管理jar包

增加第三方jar包(不需要自己下载jar包)

管理jar包之间的依赖关系(maven自动关联下载所有依赖的jar包)

2、将项目拆分成若干个模块:借助于Maven可以将一个项目拆分成多个工程。(例如爱洋葱)

Maven能干的事情:

清理:删除编译的结果,为重新编译做准备。

编译:java->class

测试:针对于项目中的关键点进行测试,也可用项目中的测试代码去测试开发代码

报告:将测试结果进行显示

打包:将项目中包含的多个文件压缩成一个文件,用于安装或部署(java项目打成一个jar包,web项目打成一个war包,父工程-pom)

安装:将打成的包,放到本地仓库,供其他项目使用。

部署:将打成的包,放到服务器上,准备运行。

Eclipse中的项目,要在Tomcat中运行,需要部署:

a、通过eclipse中add and remove按钮进行部署

b、将Web项目打成一个war包,然后将该war包复制到Tomcat/webapps中即可

通常下载一个jar包,先在本地仓库中下载,如果本地仓库中不存在,则再联网到中央仓库(镜像)去下载。

约定配置:

Maven 提倡使用一个共同的标准目录结构,Maven使用约定优于配置的原则,大家尽可能的遵守这样的目录结构。如下所示:

二、Maven POM

POM(项目对象模型)是Maven工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。执行任务或目标时,Maven会在当前目录中查找POM。它读取POM,获取所需的配置信息,然后执行目标。POM中可以指定以下配置:

项目依赖

插件

执行目标

项目构建profile

项目版本

项目开发者列表

相关邮件列表信息

在创建 POM 之前,我们首先需要描述项目组(groupId),项目的唯一ID。

所有 POM 文件都需要project元素和三个必需字段:groupId,artifactId,version。

通过groupId,artifactId,version可以在本地仓库唯一标识一个模块。

三、依赖

A中的某些类,需要使用B中的某些类,则称为A依赖B

在maven项目中,如果要使用一个当时不存在的jar或模块,则可以通过依赖实现(去本地仓库、远程仓库去寻找)

1、依赖的范围、依赖的有效性:

Compile(默认)  test  provided

2、依赖排除

3、依赖的传递性

A.jar->B.jar->C.jar

要使A.jar->C.jar:当且仅当B.jar依赖于C.jar的范围是compile

多个maven项目(模块)之间如何依赖:p项目

p项目install到本地仓库

q项目依赖,在pom.xml中放入p项目的坐标:

1

2

3 aa.test

4

5 HelloWorld

6

7 0.0.1-SNAPSHOT

8

9

4、依赖原则

a、最短路径优先原则

b、路径长度相同:

i、在同一个pom.xml文件中有2个相同的依赖,则后面的依赖会覆盖前面的 依赖(严禁使用本情况)

ii、如果是不同的pom.xml中有2个相同的依赖,则先声明的依赖会覆盖后 声明的依赖

改eclipse中jdk的版本:

在maven的安装目录中,打开setting.xml,在节点下,加入以下代码:

1

2

3 jdk-1.8

4

5

6

7 true

8

9 1.8

10

11

12

13

14

15 1.8

16

17 1.8

18

19

20 1.8

21

22

23

24

然后再在eclipse中创建maven工程时,jdk就是1.8的了。

改pom.xml文件中的依赖的版本:

首先在根节点中插入节点,然后在这个节点里,添加类似这样的版本号信息:

4.1.5.RELEASE

3.6.2

UTF-8(这个是文件的编码)

然后在依赖中,写成以下形式(类似于EL表达式):

1

2

3 org.springframework

4

5 spring-context

6

7 ${spring.version}

8

9

四、命令

执行mvn命令:必须在pom.xml所在目录执行

Maven常见命令:

mvn compile --只编译main目录中的java文件

mvn test  测试,运行的是test/java中的代码

mvn package 打成jar/war包,放在项目的target文件夹中

mvn install 将开发的模块放入本地仓库,供其他模块使用(放入的位置,是通过gav决定)

mvn clean 删除target目录(删除编译文件目录)

mvn deploy 将项目部署到Tomcat中,然后即可运行。

在eclipse中创建maven工程:

1、配置maven:

配置maven版本(不用自带的,用自己安装的)

配置本地仓库:设置settings.xml

如果执行package命令,则依次执行resources、compile、test、package命令。

Maven生命周期:

生命周期中的顺序:a b c d e

当我们执行c命令,则实际执行的是a b c

生命周期包含的阶段:3个阶段

clean 生命周期:清理

pre-clean clean post-clean

default  生命周期:默认

site 生命周期:站点

pre-site site post-site site-deploy

五、继承

使用继承,可以通过父工程,统一管理依赖的版本。

1、创建父工程:父工程的打包方式为pom

2、在父工程的pom.xml中编写依赖:

1

2

3

4 ......5

6

7

3、在子工程中加入父工程的gav(写在标签中)。

4、在子工程的pom.xml中写入../B/pom.xml(子工程pom相对于父工程pom的相对路径)

5、在子工程中需要声明:使用父工程的哪些依赖:

..

..

(只需要ga,不需要v了)

六、聚合

Maven2项目依赖于maven1项目,则在执行时,必须先将maven1加入到本地仓库中(install),之后才能执行maven2。

以上前置工程(maven1)的install操作,可以交由“聚合”一次性搞定。

聚合的使用:

在一个总工程中配置聚合:(聚合的配置,只能配置在打包方式为pom的Maven工程中)

1

2

3

4

5 ../Maven1

6

7 ../Maven2

8

9

配置完聚合之后,以后只要操作总工程,则会自动操作总工程中配置过的工程。(只要install了总工程,则子工程都会install)

七、部署

正常部署:

首先将maven的web项目打包(打成war包,结果在项目根目录的target文件夹里),然后将war包复制到tomcat的webapps文件夹中,启动tomcat即可运行。

Maven部署:

1、配置cargo

在pom.xml中加入以下内容:

1

2

3 MyWebProject

4

5

6

7

8

9 org.codehaus.cargo

10

11 cargo-maven2-plugin

12

13 1.4.9

14

15

16

17

18

19 tomcat8x

20

21 E:\Tomcat 9\apache-tomcat-9.0.14

22

23

24

25

26

27 existing

28

29 E:\Tomcat 9\apache-tomcat-9.0.14

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47 cargo-run

48

49 install

50

51

52

53 run

54

55

56

57

58

59

60

61

62

63

64

65

2、Maven命令:deploy

然后run as->maven build...->deploy,然后打开浏览器,输入localhost:8080/项目名称/,即可运行。

java mawen介绍_Maven的介绍及使用相关推荐

  1. Java XML解析工具 dom4j介绍及使用实例

    Java XML解析工具 dom4j介绍及使用实例 dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory ...

  2. Java基础-Date类常用方法介绍

    Java基础-Date类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.毫秒值概念 我们在查阅Date类的API文档时,会发现这样的一句话:"The cl ...

  3. Java代码缺陷自动分析工具介绍

    Java代码缺陷自动分析工具介绍                                                                                     ...

  4. Java基础-JAVA中常见的数据结构介绍

    Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...

  5. java中char占的二进制,java数据类型与二进制详细介绍

    java数据类型与二进制详细介绍 在java中 Int 类型的变量占 4个字节 Long 类型的变量占8个字节 一个程序就是一个世界,变量是这个程序的基本单位. Java基本数据类型 1. 整数类型 ...

  6. Java异常处理及异常机制介绍

    Java异常处理及异常机制介绍 当出现程序无法控制的外部环境问题(用户提供的文件不存在,文件内容损坏,网络不可用...)时,JAVA就会用异常对象来描述. JAVA中用2种方法处理异常: 1.在发生异 ...

  7. java基础-Eclipse开发工具介绍

    java基础-Eclipse开发工具介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 所谓工欲善其事必先利其器,即将身为一名Java开发工程师怎么能没有一款好使的IDE呢?今天就 ...

  8. php simpledateformat,Java中SimpleDateFormat的用法介绍(代码示例)

    本篇文章给大家带来的内容是关于Java中SimpleDateFormat的用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.为什么要使用SimpleDateFo ...

  9. JAVA自带监控工具的介绍

    转:http://www.alidw.com/?p=326 相信部分同学可能还是不太了解或者很少使用,这些监控工具是jdk5.0以上才会有的,有部分是liunx特有的. 了解这些工具再做压力测试和调优 ...

最新文章

  1. PHP源代码分析-字符串搜索系列函数实现详解
  2. 这才是GraphQL最详尽的解释
  3. Svchost.exe病毒
  4. cropper.js 图像旋转问题_JavaScript开源良心插件,纯前端网页图片剪裁插件——cropperjs...
  5. IBASE category 设置为01的情况下 IBASE自动创建情况
  6. 模块化开发之sea.js实现原理总结
  7. CSS图片布局 flex(竖着的几张图片改为一排)
  8. 【课程作业】EA-CNN演化卷积神经网络实验记录
  9. 现代程序设计 作业1
  10. 哔哩哔哩用户需求分析报告
  11. OpenCV学习:找出人脸,同时比较两张图片中的人脸相似度
  12. mysql 口令_怎么样为用户设定口令(MYSQL)_MySQL
  13. 数码照片尺寸计算秘笈
  14. 【上电即上华为云】华为云smart智联PLC无线网关_plc_3121N-H(3121N-IED)
  15. 谷粒商城 - 微服务分布式电商项目
  16. 王者归来,低代码的逆袭之路
  17. 冰达ROS机器人使用-实现slam建模、自主导航、避障
  18. PCB布线数字地、模拟地、电源地,单点接地抗干扰
  19. ipad mini 4:ipad is disabled connect to iTunes
  20. vue 之开发常用工具

热门文章

  1. [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available
  2. sql_mysql注入基础篇
  3. php 覆盖写文件内容,php写入文件不覆盖的实例讲解
  4. mysql 执行计划 代价_mysql explain执行计划详解
  5. eclipse没有日志_技术进展 | 加强公共DHT抵抗eclipse攻击!
  6. [笔试题目] 腾讯2015年9月基础研究笔试题
  7. 621. Task Scheduler 任务调度器
  8. 手把手教你完成CSDN对接百度统计 看完这篇文章你还不会对接 欢迎您提刀顺着网线来砍我!!!!
  9. 1011:甲流疫情死亡率
  10. 【STM32】FreeRTOS任务挂起和恢复API