Maven(一)之Maven入门
一、Maven简介
Maven可以翻译为“知识的积累”、“专家”、“内行”。作为Apache组织中的一个颇为成功的开源项目,Maven主要服务于基于Java平台的项目构建、依赖管理、和项目信息管理。Maven在各类项目中都可以大显身手。
(1) Maven是优秀的构建工具
除了编写源代码,我们每天有相当一部分时间花在了编译,运行单元测试,生成文档,打包,部署等繁琐且不起眼的工作上,这就是构建。Maven就是一个异常强大的构建工具,能够帮我们自动化构建过程,从清理,编译,测试,到生成报告,再到打包和部署。
我们不需要一遍一遍的输入命令, 一次又一次点击鼠标,Maven帮我们很方便的搞定。Maven是跨平台的。
(2) Maven还是依赖管理工具和项目信息管理工具
1. Maven通过一组坐标能够找到任何一个Java类库(如jar),Maven给这个类库世界引入了经纬,让它们变得有秩序,于是我们可以借助它来有序地管理依赖,轻松地解决那些繁杂的依赖问题。
2. Maven还能帮助我们管理原本分散在项目中各个角落的项目信息,包括项目描述,开发者列表,版本控制系统地址,许可证,缺陷管理系统地址等。除了直接的项目信息,通过Maven自动生成的站点,
以及一些已有的插件,我们还能轻松地获得项目文档、测试报告、静态分析报告、源码版本日志报告等非常具有价值的项目信息。
(3) 仓库
Maven为全世界的Java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何流行开源类库。通过Maven的一些衍生工具(如Nexus),我们还能对其进行快速地搜索。只要定位了坐标,Maven就能够帮我们自动下载,省去了手工劳动。
1.1、项目的构建
项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤,这六个步骤就是一个项目的完整构建过程。
1.2、依赖管理
依赖指的是jar包之间的相互依赖,比如我们搭建一个Struts2的开发框架时,光光有struts2-core-2.3.16.3.jar这个jar包是不行的,struts2-core-2.3.16.3.jar还依赖其它的jar包,
依赖管理指的就是使用Maven来管理项目中使用到的jar包,Maven管理的方式就是“自动下载项目所需要的jar包,统一管理jar包之间的依赖关系”。
1.3、使用maven的优点
Maven中使用约定,约定java源代码代码必须放在哪个目录下,编译好的java代码又必须放到哪个目录下,这些目录都有明确的约定。
Maven的每一个动作都拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程
只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮我们处理其他事情
使用Maven可以进行项目高度自动化构建,依赖管理(这是使用Maven最大的好处),仓库管理。
二、Maven的安装
2.1、Maven的下载
下载地址是:http://maven.apache.org/download.cgi
下载完成后,得到一个压缩包解压,可以看到maven的组成目录
Maven目录介绍:
bin:含有mvn运行的脚本
boot:含有plexus-classworlds类加载器框架
conf:含有settings.xml配置文件
lib:含有Maven运行时所需要的java类库
LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍
1.2、Maven的安装
第一步:首先你要确保你的电脑已经安装了jdk1.6版本以上的,并配置好了JDK的环境变量。
第二步:
对apache-maven-3.2.3-bin.zip进行解压缩,例如解压到如下目录(解压目录最好不要有中文)
第三步:配置环境变量
第四步:设置环境变量path,将%M2_HOME%\bin加入到path中,一定要注意使用分号;隔开。
第五步:验证是否配置成功
打开cmd命令
输入:mvn-v
三、Maven的使用
3.1、Maven的目录结构
MavenProjectRoot(项目根目录)
|----src
| |----main
| | |----java ——存放项目的.java文件
| | |----resources ——存放项目资源文件,如spring, hibernate配置文件
| |----test
| | |----java ——存放所有测试.java文件,如JUnit测试类
| | |----resources ——存放项目资源文件,如spring, hibernate配置文件
|----target ——项目输出位置
|----pom.xml ----用于标识该项目是一个Maven项目
3.2、手动创建一个Maven项目
第一步:创建项目的根文件夹:FirstMaven
第二步:创建一个pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
2 <project xmlns="http://maven.apache.org/POM/4.0.0"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
5 http://maven.apache.org/xsd/maven-4.0.0.xsd">
6 <!--所有的Maven项目都必须配置这四个配置项-->
7 <modelVersion>4.0.0</modelVersion>
8 <!--groupId指的是项目名的项目组,默认就是包名-->
9 <groupId>cn.gacl.maven.hello</groupId>
10 <!--artifactId指的是项目中的某一个模块,默认命名方式是"项目名-模块名"-->
11 <artifactId>hello-first</artifactId>
12 <!--version指的是版本,这里使用的是Maven的快照版本-->
13 <version>SNAPSHOT-0.0.1</version>
14 </project>

第三步:编写Java类文件,Maven项目规定,所有的*.java文件必须放在src目录下的main目录下的java目录中,在FirstMaven项目根目录中创建一个src目录,然后在src目录中创建main目录,在main目录中再创建java文件夹
第四步:使用Maven编译Hello.java,首先进入到项目根目录,然后使用命令”mvn compile”进行编译
使用Maven编译完成之后,在项目的根目录会产生一个target文件夹。
打开target文件夹,可以看到里面有一个classes文件夹,classes文件夹存放的就是编译成功后生成的.class文件。
第五步:使用"mvn clean"命令清除编译结果,也就是把编译生成的target文件夹删掉
四、修改Maven中心仓库下载到本地的jar的默认存储位置(配置本地仓库)
从Maven中心仓库下载到本地的jar包的默认存放在”${user.home}/.m2/repository”中,${user.home}表示当前登录系统的用户目录(如"C:\Users\gacl")
Jar包存放在这个位置不太好,我们希望能够自己定义下载下来的jar包的存放位置,因此我们可以自己设置下载到本地时的jar包的存放目录。
找到apache-maven-3.3.9\conf下的settings.xml文件
复制setting.xml文件,到默认的jar存放位置
编辑setings.xml文件
设置E盘下的AstudySoftwere/mavenrepository目录作为maven默认的下载存储位置
把jar包下载到本地的好处就是,当编译时,会优先从本地的jar包去找,如果本地存在,就直接拿来用,如果不存在,就从Maven的中心仓库去下载。
Maven(一)之Maven入门的更多相关文章
- Maven学习笔记-01-Maven入门
一 Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理. 1 项 ...
- Maven学习(1) - Maven入门
home index:http://maven.apache.org/ download:http://maven.apache.org/download.cgi install: http://ma ...
- 明晚8点,捷微团队QQ群公开课,解说jeewx2.0版本号maven环境的搭建入门!
2014-08-13号晚8点,捷微团队QQ群公开课,解说jeewx2.0版本号maven环境的搭建入门! 讲师:刘强(团队成员) QQ群:287090836 (JAVA版本号微信开源项目) http: ...
- Maven系列学习(二)Maven使用入门
Maven使用入门 通过上一节的学习,我们已经了解和配置好了Maven,接下来需要编写代码了 1.POM(Project Object Model,项目对象模型) 和Make的Makefile类似,M ...
- Maven学习总结--maven入门(一)
一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理.
- 【Maven】Maven的安装与入门使用
它也是实现项目各个环节的好帮手,如编译.单元测试.打包.发布,等等.按照它的流程走,可以让我们养成严谨的习惯. 同时,我们用得很多的是用它下载JAR,想想以前,以前框架的包都是自己一个一个爬官网下载的 ...
- MyEclipse配置maven创建项目教程入门
Maven简介:Maven是一个项目管理工具,主要用于Java平台的项目构建.依赖管理和项目生命周期管理. 下载Maven: https://maven.apache.org/download.cgi ...
- Maven快速配置和入门
概念 Maven其实就是一个管理项目.构建项目的工具.它有标准化的项目结构.构建流程.依赖管理. 功能 Maven提供了一套标准的项目结构 Maven提供了一套标准的构建流程 Maven提供了更便捷的 ...
- maven之一:maven安装和eclipse集成
maven作为一个项目构建工具,在开发的过程中很受欢迎,可以帮助管理项目中的bao依赖问题,另外它的很多功能都极大的减少了开发的难度,下面来介绍maven的安装及与eclipse的集成. maven的 ...
- Maven进价:Maven构建系列文章
Maven:基于Java平台的项目构建.依赖管理和项目信息管理. 1.构建 Maven标准化了构建过程 构建过程:编译.运行单元测试.生成文档.打包和部署 避免重复:设计.编码.文档.构建 2.依赖管 ...
随机推荐
- java-面向对象(二)
这几天正在看HeadFirst的时候,突然认为面向对象的几个特点,有点理解模糊不清.所以在这再次回想一下,加深印象. 上篇博客(http://blog.csdn.net/u010539352/arti ...
- Request的getParameter和getAttribute方法的差别
HttpServletRequest.getParameter("modelName");能取到想要的modelObject吗?经过測试之后.发现是不能的. 后来想想.其它道理挺简 ...
- Java路径问题终于解决方式—可定位全部资源的相对路径寻址
1.在Java项目中,应该通过绝对路径訪问文件.下面为訪问的经常用法: 第一种方法:类名.class.getResource("/").getPath()+文件名称 另外一种方法: ...
- m_Orchestrate learning system---六、善用组件插件的好处是什么
m_Orchestrate learning system---六.善用组件插件的好处是什么 一.总结 一句话总结: 1.面包屑导航是什么? 知道它是什么自然就知道它怎么用了 2.表格里面的栏目能能点 ...
- 时间处理工具类TimeUtil
转自:https://cnblogs.com/ityouknow/p/5662753.html 功能 Date与String之间的互相转换,以及一些特殊格式的时间字符串处理 代码 /** * 类名:T ...
- Linux就该这么学 20181004(第六章磁盘管理)
参考链接https://www.linuxprobe.com/ /boot 开机锁需要文件-内核.开机菜单以及所需配置文件 /dev 以文件形式存放的任何设备与接口 /etc 配置文件 /home 用 ...
- [jzoj 5926] [NOIP2018模拟10.25] naive 的图 解题报告(kruskal重构树+二维数点)
题目链接: https://jzoj.net/senior/#main/show/5926 题目: 题解: 显然最小的最大路径在最小生成树上(最小生成树=最小瓶颈生成树) 于是我们建出kruskal重 ...
- sicily 1091 Maximum Sum (动规)
//1091.Maximum Sum //b(i,j) = max{b(i,j-1)+a[j], max(b(i-1,t)+a[j])} (t<j) #include <iostream& ...
- 基于Zepto移动端下拉加载(刷新),上拉加载插件开发
写在前面:本人水平有限,有什么分析不到位的还请各路大神指出,谢谢. 这次要写的东西是类似于<今日头条>的效果,下拉加载上啦加载,这次做的效果是简单的模拟,没有多少内容,下面是今日头条的移动 ...
- shiro什么时候会进入doGetAuthorizationInfo(PrincipalCollection principals)
shiro会进入授权方法一共有三种情况!(注解.标签.代码) 1.subject.hasRole(“admin”) 或 subject.isPermitted(“admin”):自己去调用这个是否有什 ...