1. Maven的出发点

在进行软件开发的过程中,无论什么项目,采用何种技术,使用何种编程语言,我们都要重复相同的开发步骤:编码,测试,打包,发布,文档。实际上这些步骤是完全重复性的工作。那为什么让软件开发人员去重复这些工作?开发人员的主要任务应该是关注商业逻辑并去实现它,而不是把时间浪费在学习如何在不同的环境中去打包,发布,。。。

Maven正是为了将开发人员从这些任务中解脱出来而诞生的。

2. Maven能做什么?

Maven是由早期为Jakarta Turbine定制的构建工具发展而来的,现在成为了一个独立的软件项目管理工具。Maven能够:

1)理解并管理整个软件开发周期,重用标准的构建过程,比如:编译,测试,打包等。同时Maven还可以通过相应的元数据,重用构建逻辑到一个项目。

2)Maven负责整个项目的构建过程。开发人员只需要描述项目基本信息在一个配置文件中:pom.xml。也就是说,Maven的使用者只需要回答“What”而不是“How”。

3. Maven并不只是一个构建工具,她还可以提供:

1)声明式依赖性管理

2)集中的组件库管理

3)文档的自动生成

4)报告的自动生成

4. Maven设计原则

1)Convention Over Configuration (约定优于配置)。在现实生活中,有很多常识性的东西,地球人都知道。比如说:如何过马路(红灯停绿灯行),如何开门,关门等。对于这些事情,人们已经有了默认的约定。

在软件开发过程中,道理也是类似的,如果我们事先约定好所有项目的目录结构,标准开发过程(编译,测试,。。。),所有人都遵循这个约定。软件项目的管理就会变得简单很多。在现在流行的很多框架中,都使用了这个概念,比如EJB3和Ruby on Rails。在Maven中默认的目录结构如下:

由上图可以看出以下几个标准的Maven目录:

  • src:源代码目录。所有的源代码都被放在了这个目录下。在这个目录下又包括了:

1) main:所有的源代码放在这里。对于Java项目,还有一个下级子目录:java. 对于Flex项目则是flex,。。。

2) test:所有的单元测试类放在这里。

  • target:所有编译过的类文件以及生成的打包文件(.jar, .war, ...)放在这里。

2)Reuse Build Logic (重用构建逻辑):Maven把构建逻辑封装到插件中来达到重用的目的。这样在Maven就有用于编译的插件,单元测试的插件,打包的插件,。。。Maven可以被理解成管理这些插件的框架。
3)Declarative Execution (声明式执行):Maven中所有的插件都是通过在POM中声明来定义的。Maven会理解所有在POM中的声明,并执行相应的插件。

5. 创建一个Maven项目

1) 下载Maven:http://maven.apache.org/

2) 解压缩下载的zip文件到本地目录下,比如:D:\Maven

3) 添加D:\Maven\bin到环境变量PATH中

4) 在命令行下运行:

mvn -version  或者 mvn -v

你应该看到如下图所示的Maven版本号:

5) 运行如下命令创建一个Maven项目:

mvn archetype:create -DgroupId=net.jianxi.tutorials
-DartifactId=helloworld
-DpackageName=net.jianxi.tutorials

该项目的目录结构如下图所示:

现在就可以运行一些Maven命令了

编译: mvn compile

单元测试: mvn test

构建并打包: mvn package

清理: mvn clean

http://www.cnblogs.com/bluesfeng/archive/2010/09/06/1819585.html

Maven教程初级篇01: 简介相关推荐

  1. Maven教程初级篇01

    1. Maven的出发点 在进行软件开发的过程中,无论什么项目,采用何种技术,使用何种编程语言,我们 都要重复相同的开发步骤:编码,测试,打包,发布,文档.实际上这些步骤是完全重复性的工作.那为什么让 ...

  2. NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者

    NSIS简介: NSIS 是"Nullsoft 脚本安装系统"(Nullsoft Scriptable Installation System)的缩写,它是一个免费的 Win32 ...

  3. OD使用教程 调试篇01

    转自http://blog.fishc.com/645.html/2 让编程改变世界 Change the world by program 调试逆向 在软件开发的过程中,程序员会使用一些调试工具,以 ...

  4. 园林景观cad_极轴对象跟踪对象捕捉和dyn - AutoCAD 园林景观全面教程 初级篇 - 园林景观设计学院...

    本套教程详细讲解了CAD的各项命令,零基础的学员可以从本章开始学起,学员应该循序渐进的由浅入深严格要求自己按照教程的每一步操作,主要记忆每一个命令里面的不同的参数的操作方法,学好本章可以解决工作当中因 ...

  5. 软件测试常见笔试题(附带答案)—初级篇01

    软件测试笔试题 一.选择题 1.对计算机软件和硬件资源进行管理和控制的软件是(D) A.文件管理程序 B.输入输出管理程序 C.命令出来程序 D.操作系统 2.在没有需求文档和产品说明书的情况下只有哪 ...

  6. TexturePacker(图片打包工具)使用教程---初级篇

    一:关于TexturePacker的安装:傻瓜式的点下一步. 二:使用.打开安装目录bin目录下的TexturePackerGUI.exe文件(推荐发送此程序到桌面快捷方式),看到如下界面: 点击ad ...

  7. TikZ作图教程 | 平面几何篇01——中小学数学老师的好帮手

    作者:Daniel 时间:2020年6月9日 Karl是一名中学数学老师,他担任学校数学组组长.学期快结束了,他现在正在准备出一套年级期末考试试卷. 作为一名数学老师,每年要准备各种数学文档--电子讲 ...

  8. 中级软件测试笔试题100精讲_软件测试常见笔试题(附带答案)—初级篇01

    软件测试笔试题 一.选择题 1.对计算机软件和硬件资源进行管理和控制的软件是(D) A.文件管理程序 B.输入输出管理程序 C.命令出来程序 D.操作系统 2.在没有需求文档和产品说明书的情况下只有哪 ...

  9. 【iVX 初级工程师培训教程 10篇文拿证】01 了解 iVX 完成新年贺卡

    目录 [iVX 初级工程师培训教程 10篇文拿证]01 了解 iVX 完成新年贺卡 [iVX 初级工程师培训教程 10篇文拿证]02 数值绑定及自适应网站制作 [iVX 初级工程师培训教程 10篇文拿 ...

最新文章

  1. 昵图网服务器系统资源不足,Win7系统提示系统资源不足警告怎么办? - 爱绿豆...
  2. WP8.1程序开发,可视树VisualTreeHelper类的使用
  3. rffc2071_基于 RFFC2071的变频器设计
  4. html 换行符_每个非网站开发人员都应该了解的21个HTML基础知识
  5. ehcache + mysql例子与性能测试
  6. Ch5501-环路运输【环形处理dp】
  7. python之装饰器详解
  8. 该文件没有与之关联的程序来执行该操作_Liunx tty子系统分析之三 tty字符设备文件操作接口说明...
  9. SEO技巧之网站优化的具体细节
  10. 爱奇艺取消剧集超前点播
  11. Android开发--apk的生成
  12. 帷幕的帷是什么意思_美术生每天坚持练习|但越画越差的原因是什么?
  13. 学习马士兵Java教程
  14. ipad远程控制windows电脑
  15. MBTI职业性格测试
  16. oracle 处理英文日期格式,日常收集整理oracle trunc 函数处理日期格式(很实用)
  17. java获取double类型区间随机数
  18. 阿里云智能文字转语音源码
  19. NVIDIA:应将USD作为3D互联网的HTML标准语言
  20. 【Win10瘦身技巧】禁用Windows索引功能

热门文章

  1. Servlet学习笔记(七)—— 自己定义过滤器的编写改进:自己定义实现FilterChain...
  2. C/C++:Windows cmd 指令
  3. [转] iOS中@class #import #include 简介
  4. delphi编译缺少组件 imgedit excel2000等
  5. 微软一站式示例脚本库 — IT专业人士的省时利器
  6. 在SharePoint 2010系统中安装RBS FILESTREAM Provider
  7. 通用多表分页存储过程
  8. Windows Server AppFabric Beta 2 for For Vistual Studio 2010已经发布
  9. 分享 | 来看看阿里、华为、字节的PM是怎么工作的......
  10. Django模板语言(译)