文档章节

Maven学习(一)——Maven入门

乐在克里特
 乐在克里特
发布于 2017/02/23 09:50
字数 2028
阅读 28
收藏 1
点赞 0
评论 0

一、Maven的基本概念

  Maven(翻译为"专家","内行")是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理

1.1、项目构建

  项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤,这六个步骤就是一个项目的完整构建过程。

  

  理想的项目构建是高度自动化,跨平台,可重用的组件,标准化的,使用maven就可以帮我们完成上述所说的项目构建过程。

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下载

  下载地址: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版本,第三方软件等简要介绍

三、Maven安装

  1、首先要确保电脑上已经安装了JDK(要jdk 1.6+的版本),配置好JDK的环境变量,使用如下的两个命令检查检查JDK安装的情况。

1 Echo %JAVA_HOME%
2 Java -version

  

  2、对apache-maven-3.2.3-bin.zip进行解压缩

  对apache-maven-3.2.3-bin.zip进行解压缩,例如解压到如下目录(解压目录最好不要有中文)

  

  3、设置系统环境变量:MAVEN_HOME

  

  4、设置环境变量Path,将%MAVEN_HOME%\bin加入Path中,一定要注意要用分号;与其他值隔开,如下图所示:

  

  %MAVEN_HOME%\bin代表的就是"E:\apache-maven-3.2.3\bin"目录

  5、验证Maven安装是否成功

  打开cmd窗口

  

  输入"mvn –v"命令 查看Maven的相关信息,如下图所示:

  

  能够出现这样的信息就说明Maven的安装已经成功了。

  6、设置MAVEN_OPTS环境变量(可选配置)

  由于Maven命令实际上是执行了Java命令,所以可以通过JAVA命令参数的方式来设置MAVEN运行参数。MAVEN_OPTS环境变量正是用于此用途

  MAVEN_OPTS

  -Xms128m -Xmx512m,分别设置JVM的最小和最大内存,如下图所示:

  

四、Maven的简单使用

4.1、Maven项目的目录约定

MavenProjectRoot(项目根目录)
   |----src
   |     |----main
   |     |         |----java ——存放项目的.java文件
   |     |         |----resources ——存放项目资源文件,如spring, hibernate配置文件
   |     |----test
   |     |         |----java ——存放所有测试.java文件,如JUnit测试类
   |     |         |----resources ——存放项目资源文件,如spring, hibernate配置文件
   |----target ——项目输出位置
   |----pom.xml ----用于标识该项目是一个Maven项目

4.2、手动创建Maven项目,使用Maven编译

  1、创建项目根文件夹,例如Maven01

  

  2、在Maven01文件夹中创建“pom.xml”文件,如下图所示:

  

  pom.xml文件中的内容如下:

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

 

  3.编写Java类文件,Maven项目规定,所有的*.java文件必须放在src目录下的main目录下的java目录中,在Maven01项目根目录中创建一个src目录,然后在src目录中创建main目录,在main目录中再创建java文件夹,如下图所示:

  

  在java文件夹下创建一个Hello.java文件,如下图所示

  

  在Hello.java文件中编写如下代码:

public class Hello{
     public static void main(String[] args){
         System.out.println("Hello Maven");
     }
 }

 

  4.使用Maven编译Hello.java,首先进入到项目根目录,然后使用命令”mvn compile”进行编译,如下图所示:

  

  

  使用Maven编译完成之后,在项目根目录下会生成一个target文件夹,如下图所示:

  

  打开target文件夹,可以看到里面有一个classes文件夹,如下图所示:

  

  classes文件夹存放的就是编译成功后生成的.class文件,如下图所示:

  

  5.使用"mvn clean"命令清除编译结果,也就是把编译生成的target文件夹删掉,如下图所示:

  

  执行完"mvn clean"命令后,target文件夹就会被删除了。

五、修改从Maven中心仓库下载到本地的jar包的默认存储位置

  从Maven中心仓库下载到本地的jar包的默认存放在”${user.home}/.m2/repository”中,${user.home}表示当前登录系统的用户目录(如"C:\Users\gacl"),如下图所示

  

  

  Jar包存放在这个位置不太好,我们希望能够自己定义下载下来的jar包的存放位置,因此我们可以自己设置下载到本地时的jar包的存放目录。

  在“E:\”目录下创建一个“repository”文件夹

  

  找到apache-maven-3.2.3\conf目录下的settings.xml文件,如下图所示:

  

  编辑setting.xml文件,如下图所示:

  

  加上下面的代码

1 <localRepository>E:/repository</localRepository>

  

  这样就可以把jar包下载到我们指定的E:/repository目录中了,如下图所示:

  

  把jar包下载到本地的好处就是,当编译时,会优先从本地的jar包去找,如果本地存在,就直接拿来用,如果不存在,就从Maven的中心仓库去下载。如下图所示:

  

  第一次执行"mvn compile"和"mvn clean"这两个命令时,Maven会去中央仓库下载需要的jar包,而第二次执行这两个命令时,由于所需的jar包已经在本地的仓库中存储,所以就可以直接拿来用了,这样就省去了去中央仓库下载jar包的时间。

  以上就是Maven的简单入门讲解。

 

http://www.cnblogs.com/xdp-gacl/p/3498271.html

 

maven学习列表:

http://www.cnblogs.com/xdp-gacl/category/544719.html

 

Maven学习总结(一)——Maven入门

maven用于项目构建,依赖管理

 

使用Maven编译项目遇到——“maven编码gbk的不可映射字符”解决办法

由于maven的编码会继承操作系统的编码而引起的

 

Maven学习总结(二)——Maven项目构建过程练习 

项目文件结构、命令:mvn clean\compile\test\package\install以及组合使用

 

Maven学习总结(三)——使用Maven构建项目

mvn archetype:generate\create,但是create生成更快

 

Maven学习总结(四)——Maven核心概念

坐标、依赖、仓库、生命周期、插件

 

Maven学习总结(五)——聚合与继承

 modules、parent

 

Maven学习总结(六)——Maven与Eclipse整合

安装maven插件和基本设置

 

Maven学习总结(七)——eclipse中使用Maven创建Web项目

Maven学习总结(八)——使用Maven构建多模块项目

Maven学习总结(九)——使用Nexus搭建Maven私服

写得太简洁了点,可看后面的文章。

© 著作权归作者所有

共有 人打赏支持
乐在克里特
粉丝 15
博文 268
码字总数 394729
作品 0
杭州
程序员
Intellej idea 入门学习

编程领域技术快速发展,2年前刚开始学习JAVA时主流的IDE绝对是eclipse,没想到才2年功夫,eclipse的使用率就被intelliej idea 一举超越。在师兄的鼓励下,开始进行idea的学习使用。 1.初识i...

shenwc931205
2016/12/09
34
0
【Maven】项目管理利器Maven——前言小序

一、前言 可以说,现在很多的项目管理工具都使用了Maven,学习一下Maven,了解一些Maven相关的命令还是很有必要的。在下面的几篇博客中,小编从下面几个方面向大家介绍Maven: 二、目录结构 ...

kisscatforever
01/15
0
0
Maven基础学习2

一、Maven的基本概念   Maven(翻译为"专家","内行")是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。 1.1、项目构建   项目构建过程包括【清理项目...

浮躁的码农
2016/01/26
6
0
Maven——学习(1):基础概念

  Maven(翻译为"专家","内行")是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。 1.1、项目构建   项目构建过程包括【清理项目】→【编译项目】→【...

凡尘里的一根葱
2015/09/12
10
0
activeMQ使用入门(点对点消息)

首先创建一个maven工程,在pom文件中增加相关的依赖包,如下: <dependency> <groupId>javax.jms</groupId> <artifactId>jms-api</artifactId> <version>1.1-rev-1</version> </dependency> ......

z_jordon
2015/05/26
0
0
Dubbo实战一:快速入门 [译]

本文根据https://github.com/alibaba/dubbo 的README,然后实战操作记录如下: 一、简介 Dubbo不单单只是高性能的RPC调用框架,更是SOA服务治理的一种方案。 核心: 1. 远程通信,向本地调用...

泥沙砖瓦浆木匠
2016/04/03
186
0
手把手教你搭建SpringMVC——最小化配置

为什么需要Spring MVC 最开始接触网页的时候,是纯的html/css页面,那个时候还是用Dreamweaver来绘制页面。 随着网站开发的深入,开始学习servlet开发,记得最痛苦的就是servlet返回网页的内...

青夜之衫
2017/12/05
0
0
MAVEN 学习笔记

一、MAVEN是什么? maven将自己定位为一个项目管理工具。它负责管理项目开发过程中的几乎所有的东西: 版本——maven有自己的版本定义和规则 构建——maven支持许多种的应用程序类型,对于每...

lizo
2016/12/04
20
0
Maven入门系列(五)——在STS应用Maven项目开发入门

我写这个入门系列只是想给那些“Maven是什么”的学弟和学妹们一个快速入门的帮助,为了纪念曾经也走了很多弯路的自己,即使自己也还有很长的路在前面。所以,各路神仙就不要说什么太基础之类...

HappyBKs
2015/04/12
0
0
windows下eclipse配置maven

windows下eclipse配置maven 目录: 一、maven安装 二、eclipse配置maven 三、使用maven导入SpringMVC基础依赖包 一、maven安装 1、下载 到http://maven.apache.org/download.cgi 上面下载对应...

Qiu_CJ
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Boot Admin 2.0开箱体验

概述 在我之前的 《Spring Boot应用监控实战》 一文中,讲述了如何利用 Spring Boot Admin 1.5.X 版本来可视化地监控 Spring Boot 应用。说时迟,那时快,现在 Spring Boot Admin 都更新到 ...

CodeSheep
8分钟前
0
0
Python + Selenium + Chrome 使用代理 auth 的用户名密码授权

米扑代理,全球领导的代理品牌,专注代理行业近十年,提供开放、私密、独享代理,并可免费试用 米扑代理官网:https://proxy.mimvp.com 本文示例,是结合米扑代理的私密、独享、开放代理,专...

sunboy2050
50分钟前
0
0
实现异步有哪些方法

有哪些方法可以实现异步呢? 方式一:java 线程池 示例: @Test public final void test_ThreadPool() throws InterruptedException { ScheduledThreadPoolExecutor scheduledThre......

黄威
今天
1
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

六库科技
今天
0
0
牛客网刷题

1. 二维数组中的查找(难度:易) 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入...

大不了敲一辈子代码
今天
0
0
linux系统的任务计划、服务管理

linux任务计划cron 在linux下,有时候要在我们不在的时候执行一项命令,或启动一个脚本,可以使用任务计划cron功能。 任务计划要用crontab命令完成 选项: -u 指定某个用户,不加-u表示当前用...

黄昏残影
昨天
0
0
设计模式:单例模式

单例模式的定义是确保某个类在任何情况下都只有一个实例,并且需要提供一个全局的访问点供调用者访问该实例的一种模式。 实现以上模式基于以下必须遵守的两点: 1.构造方法私有化 2.提供一个...

人觉非常君
昨天
0
0
《Linux Perf Master》Edition 0.4 发布

在线阅读:https://riboseyim.gitbook.io/perf 在线阅读:https://www.gitbook.com/book/riboseyim/linux-perf-master/details 百度网盘【pdf、mobi、ePub】:https://pan.baidu.com/s/1C20T......

RiboseYim
昨天
1
0
conda 换源

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mir......

阿豪boy
昨天
1
0
Confluence 6 安装补丁类文件

Atlassian 支持或者 Atlassian 缺陷修复小组可能针对有一些关键问题会提供补丁来解决这些问题,但是这些问题还没有放到下一个更新版本中。这些问题将会使用 Class 类文件同时在官方 Jira bug...

honeymose
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部