Maven教程初级篇01: 简介
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项目:
-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: 简介相关推荐
- Maven教程初级篇01
1. Maven的出发点 在进行软件开发的过程中,无论什么项目,采用何种技术,使用何种编程语言,我们 都要重复相同的开发步骤:编码,测试,打包,发布,文档.实际上这些步骤是完全重复性的工作.那为什么让 ...
- NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者
NSIS简介: NSIS 是"Nullsoft 脚本安装系统"(Nullsoft Scriptable Installation System)的缩写,它是一个免费的 Win32 ...
- OD使用教程 调试篇01
转自http://blog.fishc.com/645.html/2 让编程改变世界 Change the world by program 调试逆向 在软件开发的过程中,程序员会使用一些调试工具,以 ...
- 园林景观cad_极轴对象跟踪对象捕捉和dyn - AutoCAD 园林景观全面教程 初级篇 - 园林景观设计学院...
本套教程详细讲解了CAD的各项命令,零基础的学员可以从本章开始学起,学员应该循序渐进的由浅入深严格要求自己按照教程的每一步操作,主要记忆每一个命令里面的不同的参数的操作方法,学好本章可以解决工作当中因 ...
- 软件测试常见笔试题(附带答案)—初级篇01
软件测试笔试题 一.选择题 1.对计算机软件和硬件资源进行管理和控制的软件是(D) A.文件管理程序 B.输入输出管理程序 C.命令出来程序 D.操作系统 2.在没有需求文档和产品说明书的情况下只有哪 ...
- TexturePacker(图片打包工具)使用教程---初级篇
一:关于TexturePacker的安装:傻瓜式的点下一步. 二:使用.打开安装目录bin目录下的TexturePackerGUI.exe文件(推荐发送此程序到桌面快捷方式),看到如下界面: 点击ad ...
- TikZ作图教程 | 平面几何篇01——中小学数学老师的好帮手
作者:Daniel 时间:2020年6月9日 Karl是一名中学数学老师,他担任学校数学组组长.学期快结束了,他现在正在准备出一套年级期末考试试卷. 作为一名数学老师,每年要准备各种数学文档--电子讲 ...
- 中级软件测试笔试题100精讲_软件测试常见笔试题(附带答案)—初级篇01
软件测试笔试题 一.选择题 1.对计算机软件和硬件资源进行管理和控制的软件是(D) A.文件管理程序 B.输入输出管理程序 C.命令出来程序 D.操作系统 2.在没有需求文档和产品说明书的情况下只有哪 ...
- 【iVX 初级工程师培训教程 10篇文拿证】01 了解 iVX 完成新年贺卡
目录 [iVX 初级工程师培训教程 10篇文拿证]01 了解 iVX 完成新年贺卡 [iVX 初级工程师培训教程 10篇文拿证]02 数值绑定及自适应网站制作 [iVX 初级工程师培训教程 10篇文拿 ...
最新文章
- 昵图网服务器系统资源不足,Win7系统提示系统资源不足警告怎么办? - 爱绿豆...
- WP8.1程序开发,可视树VisualTreeHelper类的使用
- rffc2071_基于 RFFC2071的变频器设计
- html 换行符_每个非网站开发人员都应该了解的21个HTML基础知识
- ehcache + mysql例子与性能测试
- Ch5501-环路运输【环形处理dp】
- python之装饰器详解
- 该文件没有与之关联的程序来执行该操作_Liunx tty子系统分析之三 tty字符设备文件操作接口说明...
- SEO技巧之网站优化的具体细节
- 爱奇艺取消剧集超前点播
- Android开发--apk的生成
- 帷幕的帷是什么意思_美术生每天坚持练习|但越画越差的原因是什么?
- 学习马士兵Java教程
- ipad远程控制windows电脑
- MBTI职业性格测试
- oracle 处理英文日期格式,日常收集整理oracle trunc 函数处理日期格式(很实用)
- java获取double类型区间随机数
- 阿里云智能文字转语音源码
- NVIDIA:应将USD作为3D互联网的HTML标准语言
- 【Win10瘦身技巧】禁用Windows索引功能
热门文章
- Servlet学习笔记(七)—— 自己定义过滤器的编写改进:自己定义实现FilterChain...
- C/C++:Windows cmd 指令
- [转] iOS中@class #import #include 简介
- delphi编译缺少组件 imgedit excel2000等
- 微软一站式示例脚本库 — IT专业人士的省时利器
- 在SharePoint 2010系统中安装RBS FILESTREAM Provider
- 通用多表分页存储过程
- Windows Server AppFabric Beta 2 for For Vistual Studio 2010已经发布
- 分享 | 来看看阿里、华为、字节的PM是怎么工作的......
- Django模板语言(译)