一.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如下所示:

  1. <modelVersion>4.0.0</modelVersion>
  2. <groupId>myGroup</groupId>
  3. <packaging>jar</packaging>
  4. <url>http://maven.apache.org</url>
  5. <properties>
  6. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  7. </properties>
  8. <dependencies>
  9. <dependency>
  10. <groupId>junit</groupId>
  11. <artifactId>junit</artifactId>
  12. <version>3.8.1</version>
  13. <scope>test</scope>
  14. </dependency>
  15. </dependencies>
  16. </project>

写一个 helloWorld

•mvn clean compile    编译并生成target

用eclipse maven插件创建项目

1.new project 选择maven project
2 创建简单project
3.填写基本信息
点击finish即可,生成的目录结构如下

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入门教程的更多相关文章

  1. Maven入门教程(一)

    1.Maven的简介 1.1 什么是maven 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的.Maven是一个项目管理工具,它包含了一个项目对象模型 (Projec ...

  2. [Maven]Maven入门教程

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

  3. Java微服务(Spring-boot+MyBatis+Maven)入门教程

    1,项目创建    新建maven项目,如下图: 选择路径,下一步 输入1和2的内容,点完成 项目创建完毕,结构如下图所示: 填写pom.xml里内容,为了用于打包,3必须选择jar,4和5按图上填写 ...

  4. kafka入门教程链接

    http://www.aboutyun.com/forum.php?mod=viewthread&tid=12882 经典入门教程 1.Kafka独特设计在什么地方?2.Kafka如何搭建及创 ...

  5. Apache Maven 入门篇 ( 上 )

    作者:George Ma 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法. 这个入门篇分上下两篇.本文着重动手,用 mav ...

  6. Spring MVC 入门教程示例 (一)

    今天和大家分享下  Spring MVC  入门教程 首先还是从 HelloWorld  web 工程开始 -------------------------- 1.首先创建一个Maven Web工程 ...

  7. Spring Boot入门教程1、使用Spring Boot构建第一个Web应用程序

    一.前言 什么是Spring Boot?Spring Boot就是一个让你使用Spring构建应用时减少配置的一个框架.约定优于配置,一定程度上提高了开发效率.https://zhuanlan.zhi ...

  8. Spring Boot入门教程2-1、使用Spring Boot+MyBatis访问数据库(CURD)注解版

    一.前言 什么是MyBatis?MyBatis是目前Java平台最为流行的ORM框架https://baike.baidu.com/item/MyBatis/2824918 本篇开发环境1.操作系统: ...

  9. Spring Cloud 入门教程 - 搭建配置中心服务

    简介 Spring Cloud 提供了一个部署微服务的平台,包括了微服务中常见的组件:配置中心服务, API网关,断路器,服务注册与发现,分布式追溯,OAuth2,消费者驱动合约等.我们不必先知道每个 ...

随机推荐

  1. PAT乙级 1012. 数字分类 (20)

    1012. 数字分类 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一系列正整数,请按要求对数字进 ...

  2. 关于wxwidgets图形界面的关闭窗口的按钮无效的解决办法

    这是使用wxsmith设计界面时的情况,如果用纯代码写的界面,关闭按钮就很奇怪地有效 道听途说,窗口的关闭是由一个方法控制着.大概是这样的: void PlainFrame::OnClose(wxCl ...

  3. 让未激活的win8.1不再跳出提示激活的窗口

    以管理员运行命令行: 输入以下命令: slmgr.vbs -upk

  4. zw版_Halcon图像库delphi接口文件

    zw版_Halcon图像库delphi接口文件 Halcon图像库delphi接口文件,根据安装时用户设置的文件目录不同,会有所差异,笔者一般安装在delphi的import目录下.     参见:& ...

  5. 分数的加减法——C语言初学者代码中的常见错误与瑕疵(12)

    前文链接:分数的加减法——C语言初学者代码中的常见错误与瑕疵(11) 重构 题目的修正 我抛弃了原题中“其中a, b, c, d是一个0-9的整数”这样的前提条件,因为这种限制毫无必要.只假设a, b ...

  6. setInterval 实时驱动界面改变

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. 文字处理控件TX Text Control X10独家揭秘(一):数据源自动处理

    TX Text Control即将发布的X10版本,将升级重点还是放到了其比较优势的流式布局报表设计和生成上.慧都获得了来自其开发商Text Control GmbH公司的一手资料,迫不及待的为大家带 ...

  8. Objective-C代码的文件扩展名与数据类型

    Objective-C数据类型可以分为:基本数据类型.对象类型和id类型. 基本数据类型有:int.float.double和char类型. 对象类型就是类或协议所声明的指针类型,例如:SAutore ...

  9. 鸟哥的linux私房菜学习记录之档案权限与目录配置

    在linux中可以通过ls来查看文件 如ls -al,可以看到类似以下的内容 给个例子来理解下 在目录中如果只有r权限没有x权限无法进入该目录

  10. linux-kernel 学习计划

    [资料] http://www.ibm.com/developerworks/cn/views/linux/libraryview.jsp http://www.kerneltravel.net/ [ ...