maven入门教程
一.Maven 是什么?
Maven 英文名称:专家,由名字可见,这个工具野心非常大。有人说他是"构建工具",一个用来把源代码构建成可发布的构件的工具。也有人说是项目管理工具。
官方定义:
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(ProjectLifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
本人理解:
MAVEN内置软件仓库,帮助构建打包管理项目。
二.linux安装maven
1. JAVA环境。
设置JAVA_HOME
在~/.bashrc中加入
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/
保证JAVA命令可用,没有的去安装yum install openjdk-devel
2.下载maven。
http://maven.apache.org/download.html
解压到:/opt/apache-maven-3.0.3/
设置环境变量,加入~/.bashrc
export M2_HOME=/opt/apache-maven-3.0.3/
export PATH=$PATH:/opt/apache-maven-3.0.3/bin/
执行. ~./bashrc即可。
3.测试是否成功

4 eclipse 安装maven
官方下载页面里可以找到eclispe中更新m2eclipse的地址为:http://download.eclipse.org/technology/m2e/releases
打开eclipse--》help-->install new software -->add -->name输入maven,location输入http://download.eclipse.org/technology/m2e/releases
之后往下点击,选中需要安装的部分即可。
验证是否安装成功:
file里new一个project,输入过滤条件maven ,看到maven的选项,说明安装成功。
让eclipse使用外部安装的maven运行时
windows-->preferences-->找到maven项目--》installation项目,点击add,找到本机maven位置确定即可。

三、使用
1.约定优于配置
Convention Over Configuration
源代码假定是在 /src/main/java,
资源文件假定是在 src/main/resources
测试代码假定是在 /src/test 。
项目假定会产生一个 JAR 文件
Maven假定你想要把编译好的字节码放到 /target/classes
在 /target 创建一个可分发的 JAR 文件。
看似没什么,但是比ANT使用要省事的多,ANT需要去配置每个目录。当然区别不只这些。
默认结构如下图所示:

2、创建Maven项目
用命令创建
mvn archetype:create -DgroupId=wz.package -DartifactId=helloWorld
Web项目增加:-DarchetypeArtifactId=maven-archetype-webapp
groupId 组名,DartifactId项目名称。
生成pom.xml如下所示:
- <modelVersion>4.0.0</modelVersion>
- <groupId>myGroup</groupId>
- <packaging>jar</packaging>
- <url>http://maven.apache.org</url>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- </project>
写一个 helloWorld

•mvn clean compile 编译并生成target
用eclipse maven插件创建项目
3 测试:
@Test
public void testsayHello(){
App app = new App();
String result = app.sayHello();
Assert.assertEquals("Hello Maven!",result);
}
•mvn clean test
4 搜索可用版本
•http://mvnrepository.com/
•如查找junit,找到很多版本,点开可见

5 打包和安装
mvn clean package
mvn clean install
mvn jetty:run (WEB项目运行)
复杂的例子:
org.springframework.samples.jpetstore(复杂)
6 项目依赖范围
compile(编译范围)compile是默认的范围;
provided(已提供范围)如servlet
runtime(运行时范围) 如JDBC的实现包
test(测试范围)
system(系统范围)
四 常见问题
1 转为WEB项目的问题
mvn eclipse:eclipse 打成ECLIPSE项目,不能被识别为WEB项目,使用下面命令即可
mvn eclipse:eclipse -Dwtpversion=1.0
2.不识别M2_REPO
M2_REPO这个参数Eclipse不认得,需要给它添上:
Eclipse->Windows->Preferences->java->Build Path->Classpath Variables
new一个,名字是M2_REPO,属性选folder,指向C:\Documents and Settings\kaseyxiong\.m2\repository
3 ECLIPSE部署时候依赖包没导入
通常不会出现这个问题,如果出现,则项目--属性--deployment Assembly -->add --> build path entries -->选中需要的包 --> finish
4 ECLIPSE未编译
project --.> clean一下就行
5 下载依赖包的源码
加上参数: -DdownloadSources=true或者mvn dependency:sources
maven入门教程的更多相关文章
- Maven入门教程(一)
1.Maven的简介 1.1 什么是maven 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的.Maven是一个项目管理工具,它包含了一个项目对象模型 (Projec ...
- [Maven]Maven入门教程
概念 Maven是什么 Maven 是一个项目管理工具.它负责管理项目开发过程中的几乎所有的东西. 版本 maven有自己的版本定义和规则 构建 maven支持许多种的应用程序类型,对于每一种支持的应 ...
- Java微服务(Spring-boot+MyBatis+Maven)入门教程
1,项目创建 新建maven项目,如下图: 选择路径,下一步 输入1和2的内容,点完成 项目创建完毕,结构如下图所示: 填写pom.xml里内容,为了用于打包,3必须选择jar,4和5按图上填写 ...
- kafka入门教程链接
http://www.aboutyun.com/forum.php?mod=viewthread&tid=12882 经典入门教程 1.Kafka独特设计在什么地方?2.Kafka如何搭建及创 ...
- Apache Maven 入门篇 ( 上 )
作者:George Ma 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法. 这个入门篇分上下两篇.本文着重动手,用 mav ...
- Spring MVC 入门教程示例 (一)
今天和大家分享下 Spring MVC 入门教程 首先还是从 HelloWorld web 工程开始 -------------------------- 1.首先创建一个Maven Web工程 ...
- Spring Boot入门教程1、使用Spring Boot构建第一个Web应用程序
一.前言 什么是Spring Boot?Spring Boot就是一个让你使用Spring构建应用时减少配置的一个框架.约定优于配置,一定程度上提高了开发效率.https://zhuanlan.zhi ...
- Spring Boot入门教程2-1、使用Spring Boot+MyBatis访问数据库(CURD)注解版
一.前言 什么是MyBatis?MyBatis是目前Java平台最为流行的ORM框架https://baike.baidu.com/item/MyBatis/2824918 本篇开发环境1.操作系统: ...
- Spring Cloud 入门教程 - 搭建配置中心服务
简介 Spring Cloud 提供了一个部署微服务的平台,包括了微服务中常见的组件:配置中心服务, API网关,断路器,服务注册与发现,分布式追溯,OAuth2,消费者驱动合约等.我们不必先知道每个 ...
随机推荐
- 夺命雷公狗---DEDECMS----13dedecms首页的完成
我们的dedecms搭建起来后直接复制templets的目录复制一份,如下所示: 然后进入templets目录里面,然后再将default里面的东西都给干掉,然后将我们预先准备好的首页放进来,代码如下 ...
- Cortex-R5
TCM:Tightly Coupled Memory,连接到RAM等memory中,但是CPU读写速度很快. ECC:Error Checking and Correction PMU:Perform ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON AddNoiseWhite
zw版[转发·台湾nvp系列Delphi例程]HALCON AddNoiseWhite unit Unit1;interfaceuses Windows, Messages, SysUtils, Va ...
- SqlServer中使用Select语句给变量赋值的时候需要注意的一个问题
我们知道在SqlServer中可以用Select语句给变量赋值,比如如下语句就为int类型的变量@id赋值 ; select @id=id from ( as id union all as id u ...
- 网上书城分类Category模块
2 分类模块 2.1 创建分类模块相关类 在每个模块开始时,都要创建如下基本类:实体类.DAO类.Service类.Servlet类: l cn.itcast.goods.category.domai ...
- api-ms-win-crt-runtimel1-1-0.dll缺失的解决方案
api-ms-win-crt-runtime就是MFC的运行时环境的库, 在windows上编译也是用微软的visual studio C++编译的软件, 底层也会用到微软提供的C++库和runtim ...
- docker学习整理
1.安装 Docker 支持 CentOS6 及以后的版本 对于 CentOS6,可以使用 EPEL 库安装 Docker CentOS7 系统 CentOS-Extras 库中已带 Docker,可 ...
- [转]JEXUS的高级配置
转自:http://www.cnblogs.com/xiaodiejinghong/archive/2013/04/14/3019660.html 前一回合,我们对服务器软件Jexus作了简单的介绍, ...
- Caused by: org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not set
docs.jboss.org文档示例代码:(http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/) sta ...
- Quartz集群原理及配置应用
1.Quartz任务调度的基本实现原理 Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于Java实现.作为一个优秀的开源调度框架,Quartz具有以下特点: (1) ...