一.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

最新文章

  1. WebService的开发、部署、调用
  2. 绘制图形与3D增强技巧(一)----点图元
  3. SQL SERVER赋权限
  4. JNI函数复杂对象传递
  5. leecode 每日解题思路 64 Minimum Path Sum
  6. Echarts使用随笔(2)-Echarts中mapType and data
  7. A*寻路算法lua实现
  8. HTML--绝对路径, 表格,表单, 框架
  9. Node.js 异步异闻录
  10. Spring Cloud Eureka Server集群Demo级搭建
  11. 接口管理工具——阿里RAP
  12. Freeradius服务器的搭建流程
  13. Android学习之基础知识四-Activity活动3讲(Intent的使用)
  14. BZOJ 4032: [HEOI2015]最短不公共子串
  15. 高性能计算linux集群常用配置
  16. netty答题
  17. Oracle 数据库维护管理之--dbms_lock
  18. es知识点
  19. Mysql Workbench 连接CentOs MySQL
  20. LeetCode41.缺失的第一个正数 JavaScript

热门文章

  1. 夺命雷公狗ThinkPHP项目之----企业网站4之数据库连接
  2. zw版【转发&#183;台湾nvp系列Delphi例程】HALCON FillUpShape2
  3. 基于mjpg_streamer视频服务器移植【转】
  4. Android NDK 开发(三)--常见错误锦集合Log的使用【转】
  5. NXP QN9020
  6. Serializable 序列化
  7. &lt;mvc:annotation-driven /&gt;与&lt;context:annotation-config /&gt;
  8. 指令重排序及Happens-before法则随笔
  9. FTPS加密上传
  10. rsync 排除指定目录或文件进行同步