maven教程 IDEA中使用Maven Tomcat配置 依赖管理

1、背景

1.1 软件是一个工程

        我们在日常生活常能听到工程这个词,像桥梁工程、道路工程、南水北调工程等等。

        工程说简单点就是各个行业的从业人员通过总结规律或者方法,以最短的时间和人力、物力来做出高效可靠的东西。我们也就能理解桥梁工程,其实就是人们通过经验的总结和各种研究得出来的、用来修建桥梁时所采用的高效的方法,当然这种方法是可复用的。我们将这种作工程的思想应用到软件上,于是就产生了一软件工程。

        软件工程:为了能够实现软件的流水线式生产,在设计和构建软件时能够有一种规范和工程化的方法,人们便提出了软件工程概念。

1.2 完成一个java项目,需要做的工作

(1)分析项目要做什么,知道项目有哪些组成部分。

(2)设计项目,通过哪些步骤,使用哪些技术.需要多少人,多长的时间.

(3)组建团队,招人, 购置设备,服务器, 软件,笔记本..

(4)开发人员写代码。开发人员需要测试自己写代码。重复多次的工作.

(5)测试人员,测试项目功能是否符合要求.测试开发人员提交代码-如果测试有问题-需要开发人员修改--再提交代码给测试--测试人员再测试代码-如果还有问题-再交给开发人员-开发人员再提交-再测试直到-测试代码通过.  (多次重复的工作.

1.3 在没有maven之前,开发一个java项目会遇到的问题

(1)很多模块,模块之间有关系, 手工管理关系,比较繁琐

(2)需要很多第三方功能,需要很多jar文件,需要手工从网络中获取各个jar

(3)需要管理jar的版本, 你需要的是mysgl .5.1.5.jar 那不能给一个mysql.4.0.jar

(4)管理jar文件之间的依赖, 你的项目要使用a.jar需要使用b.jar里面的类.必须首先获取到b.jar才可以,然后才能使用a.jar.

说明:a.jar需要b:jar这个关系叫做依赖, 或者你的项目中要使用mysql的驱动, 也可以叫做项目依赖mysql驱动。或者比如 a.class使用b.class, a依赖b类

1.4 为了改进项目的开发和管理,maven应运而生

maven可实现以下作用:

(1)maven可以管理jar文件

(2)自动下载jar和他的文档,源代码

(3)管理jar直接的依赖, a.jar需要b.jar , maven会自动下载b.jar

(4)管理你需要的jar版本

(5)编译程序,把Java编译为class  (构建)

(6)测试代码是否正确.  (构建)

(7)将你编写的类打包,形成jar文件,或者war文件  (构建)

(8)帮你部署项目  (构建)

总结:maven帮忙完成费时费力又麻烦的重复性工作,程序员就可以专心写功能型代码了。

2、maven 构建  项目的构建       

   构建是面向过程的,就是一些步骤,完成项目代码的编译,测试,运行,打包,部署等等.maven支持的构建包括有:

(1)清理, 把之前项目编译的东西删除掉,为新的编译代码做准备。

(2)编译, 把程序源代码编译为执行代码, 批量将.Java文件变成.class文件, maven可以同时把成千上百的.java文件编译为.class.(传统的javac一次只能编译一个文件)

编译方法:maven工程所在的根目录下,启动cmd(直接windows文件目录那里输入cmd),然后输入命令 mvn compile

(3)测试, maven可以执行测试程序代码,验证你的功能是否正确。maven同时批量执行多个测试代码,同时测试很多功能(传统的测试一次只能测试一个类,那要测试多久才能测试完啊)

(4)报告, 生成测试结果的文件, 告知测试是否通过。

(5)打包, 把你的项目中所有的class文件,配置文件等所有资源放到一个压缩文件中。这个压缩文件就是项目的结果文件,通常Java程序,压缩文件是Jar扩展名的.对于web应用,压缩文件扩展名是.war

(6)安装, 把(5)中生成的文件jar, war安装到本机仓库中

(7)部署, 把程序安装好可以执行。  (一般不用maven部署)

说明:开发中主要做1-6,不用maven部署,maven部署更复杂

3、maven的安装和配置

(1)从maven的官网下载maven的安装包apache-maven-x.x.x-bin.zip

(2)解压安装包,解压到一个目录,非中文目录.

            子目录bin :里面有maven执行程序,主要是mvn.cmd

            子目录conf :里面有maven工具本身的配置文件settings .xml

(3)配置环境变量在系统的环境变量中,指定一个M2_HOME的名称, 指定它的值是maven工具安装目录,(bin之前的目录)

M2 HOME=安装目录  。再把M2_HOME加入到path之中,在所有路径之前加入%M2_HOME%\bin;4)验证,新的命令行中,执行mvn-v

4、maven 核心概念 (maven中的术语)

(1)POM    Project Object Module   项目对象模型

    一个文件名,名称是pom.xml,该文件控制maven构建项目的过程,管理jar依赖

(2)约定的目录结构

    maven项目的目录和文件位置都是有规定的,不能随便乱放

(3)坐标(gav)

    Maven把任何一个插件都作为仓库中的一个项目进行管理,用一组(三个)向量组成的坐标来表示。坐标在仓库中可以唯一定位一个Maven项目。

groupld:组织名,通常是公司或组织域名倒序+项目名

artifactld:模块名,通常是工程名

version:版本号

       需要特别指出的是,项目在仓库中的位置是由坐标来决定的、groupld, artifactid和version决定项目在仓库中的路径(groupId对应的包路径/模块名/版本号/jar包), artifactid和version决定jar包的名称。

    进入POM.xml文件,对坐标进行配置。

(4)依赖管理

    用于管理项目中可以使用的jar文件

(5)仓库管理(了解即可)

    资源存放的位置

(6)生命周期(了解即可)

     maven构建项目的过程,就是生命周期。即完成清理、编译,测试,运行、打包等

(7)插件和目标(了解即可)

    执行maven构建的相关命令时,比如清理,编译、打包等命令,实际是插件在运作。插件就是Maven的功能类。

(8)继承

     和java继承类似,由父及子

(9)聚合

        将多个项目汇总到一起

4.1、maven工程约定的目录结构

每一个maven项目在磁盘中都是一个文件夹(就相当于是IDEA项目的文件夹)

JAVA工程名

src
main
java 各种包 程序的包和包中的java文件
resources java程序需要的配置文件
test 放置测试程序的代码和配置文件(如果要求测试,允许没有测试文件)
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值