您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   成长之路  
会员   
 
   
 
  
每天15篇文章
不仅获得谋生技能
更可以追随信仰
 
 
     
   
 订阅
  捐助
Apache Maven 入门篇
 
作者:George Ma 来源:Oracle 发布于 2015-01-12
1338 次浏览     评价:      
 

写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法。
这个入门篇分上下两篇。本文着重动手,用 maven 来构建运行 hellow world 程序,体会一下不用任何 IDE ,只用 maven 是咋回事。然后下篇就讲解一下 maven 的核心概念。写这两篇文章特意回避了复杂的示例,也不使用 IDE ,目的是排除干扰,着重于 maven 本身。

Apache Maven 是做什么用的?

Maven 是一个项目管理和构建自动化工具。但是对于我们程序员来说,我们最关心的是它的项目构建功能。所以这里我们介绍的就是怎样用 maven 来满足我们项目的日常需要。

Maven 使用惯例优于配置的原则 。它要求在没有定制之前,所有的项目都有如下的结构:

一个 maven 项目在默认情况下会产生 JAR 文件,另外 ,编译后 的 classes 会放在 ${basedir}/target/classes 下面, JAR 文件会放在 ${basedir}/target 下面。

这时有人会说了 , Ant 就没有那么多要求 ,它允许你可以自由的定义项目的结构。在这里不想引起口水战哈, 我个人觉得 maven 的这些默认定义很方便使用。

好了 ,接下来我们来安装 maven 。

Maven 的安装

在安装 maven 前,先保证你安装了 JDK 。 JDK 6 可以从 Oracle 技术网上下载:
http://www.oracle.com/technetwork/cn/java/javase/downloads/index.html。

Maven 官网的下载链接是 : http://maven.apache.org/download.html 。

该页的最后给出了安装指南。

安装完成后,在命令行运行下面的命令:

$ mvn -v 
Apache Maven 3.0.3 (r1075438; 2011-03-01 01:31:09+0800)
Maven home: /home/limin/bin/maven3
Java version: 1.6.0_24, vendor: Sun Microsystems Inc.
Java home: /home/limin/bin/jdk1.6.0_24/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.35-28-generic-pae", arch: "i386", family: "unix"

如果你看到类似上面的输出的话,就说明安装成功了。

接下来我们用 maven 来建立最著名的“Hello World!”程序 :)

注意:如果你是第一次运行 maven,你需要 Internet 连接,因为 maven 需要从网上下载需要的插件。

我们要做的第一步是建立一个 maven 项目。在 maven 中,我们是执行 maven 目标 (goal) 来做事情的。

maven 目标和 ant 的 target 差不多。在命令行中执行下面的命令来建立我们的 hello world 项目

~$mvn archetype:generate -DgroupId=com.mycompany.helloworld -DartifactId=helloworld 
-Dpackage=com.mycompany.helloworld -Dversion=1.0-SNAPSHOT

archetype:generate 目标会列出一系列的 archetype 让你选择。 Archetype 可以理解成项目的模型。 Maven 为我们提供了很多种的项目模型,包括从简单的 Swing 到复杂的 Web 应用。我们选择默认的 maven-archetype-quickstart ,是编号 #106 ,如下图所示:

连打两个回车,这时候让你确定项目属性的配置,

这些属性是我们在命令行中用 -D 选项指定的。该选项使用 -Dname=value 的格式。回车确认,就完成了项目的建立,如下图所示:

这时候我们看一下 maven 给我们建立的文件目录结构:

maven 的 archetype 插件建立了一个 helloworld 目录,这个名字来自 artifactId 。在这个目录下面,有一个 Project Object Model(POM) 文件 pom.xml 。这个文件用于描述项目,配置插件和管理依赖关系。
源代码和资源文件放在 src/main 下面,而测试代码和资源放在 src/test 下面。

Maven 已经为我们建立了一个 App.java 文件:

package com.mycompany.helloworld;   

/**
* Hello world!
*
*/
public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); } }

正是我们需要的 Hello World 代码。所以我们可以构建和运行这个程序了。用下面简单的命令构建:

~$cd helloworld
~$mvn package 

当你第一次运行 maven 的时候,它会从网上的 maven 库 (repository) 下载需要的程序,存放在你电脑的本地库 (local repository) 中,所以这个时候你需要有 Internet 连接。Maven 默认的本地库是 ~/.m2/repository/ ,在 Windows 下是 %USER_HOME%\.m2\repository\ 。

如果构建没有错误的话,就会得到类似下面的结果:

这个时候, maven 在 helloworld 下面建立了一个新的目录 target/ ,构建打包后的 jar 文件 helloworld-1.0-SNAPSHOT.jar 就存放在这个目录下。编译后的 class 文件放在 target/classes/ 目录下面,测试 class 文件放在 target/test-classes/ 目录下面。

为了验证我们的程序能运行,执行下面的命令:

 ~$java -cp target/helloworld-1.0-SNAPSHOT.jar com.mycompany.helloworld.App

运行成功!!

现在你可能会有不少的问题。所以下一篇文章会解释 maven 的核心概念,希望能回答你可能会有的一些疑问。

 

   
 订阅
  捐助
     
 
相关文章

没人教的项目管理方法
软件项目管理流程总结
有效改进项目管理技能的十个过程
软件项目管理的流程控制分析
 
相关文档

项目执行管理
软件项目开发过程
项目管理框架精华
软件开发项目管理
 
相关课程

敏捷项目管理实践
软件项目管理
IT外包项目管理
基于功能点的工作量估算
 

正视研发管理才是高水平竞争
需求是如何变成产品原型的
产品经理能力模型解说—把控
产品经理的正确定位
谁是合格的产品经理?
产品管理与产品营销的区别
更多...   


统一过程及应用
敏捷过程实践
基于XP/RUP的迭代开发
软件开发过程指南
SCRUM过程实践
敏捷测试-简单而可行

相关咨询服务
基于CMMI2-3过程改进咨询
软件工程体系与平台构建
软件开发过程


某博彩企业 产品经理与产品管理
面向产品的需求分析与管理
中国民航 产品经理关键技能
深圳 产品经理与产品管理
某通信企业 基于互联网的产品创新
某知名互联网企业 产品管理
世纪高通 创新创造突破性产品
更多...   
 
 
 
 
 
每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号