maven2学习总结(1,入门起步与实践)
1.1 Maven 概述
Maven提供了一套软件项目管理的综合性方案.无论是编译,发布,文档还是团队协作,Maven提供了必要的抽象,它鼓励重用,并做了除了软件构建以外的许多工作.
1.1.1 什么是Maven
Maven是一套项目管理框架,但这并不是Maven的全部.它是Maven作者能想得到的最显而易见的三句话定义.但是这个名字是个毫无意义的抽象,它并没有表达出Maven的强大功能和复杂性.太多的技术人员经常使用三四个关键词,来描述复杂的课题,并且重复的使用诸如"project management"和"enterprise software start"而没有能表达出其具体的含义.
当某人想要了解Maven是什么时,他们通常会问"到底Maven是个什么东东?",然后他们期待着一个短小的,概述的回答,"嗯,它是一个构建工具,或者是一个脚本框架". Maven无法使用乏味的,毫无意义的单词来解释清楚.它是一个思想,标准以及软件的综合体,并且几乎不可能去提取出一个定义为一个简单的,概述性的定义.创新的思想往往很难用语言表达清楚.如果你对Maven的一个全面的,丰富的定义感兴趣的话,你可以阅读本介绍.它会首先想你提供所要遵循的概念和理论. 如果你阅读本介绍,只是为了寻找某些内容来告诉你的主管的话,你可以现在就转到第二章去了.
如果Maven不是一个"项目管理框架",那它是什么呢? 下面是一种描述:Maven是标准、存储格式以及一些软件用以管理和描述项目。它为构建、测试、部署项目定义了一个标准的生命周期。它提供了一个框架,允许遵循Maven标准的所有项目,方便的重用公用的构建逻辑。Maven项目存在的Apache软件基金会,是一个开源社区,它开发的软件工具,基于一个通用的软件对象模型(Project Object Model),也就是POM。本书重点关注Maven项目的核心部分——Maven 2,一个非常好的工具,它大大简化了软件项目的管理流程。
你可能曾经期待过一个更为浅显易懂的答案,或许你捡起这本书是因为某人曾经告诉过你Maven是一个构建工具。别担心,Maven可以做一个你要寻找的构建工具,并且很多使用Maven作为另外的构建工具的开发者们,都得到了一个很好的经过调优的构建系统。当你打算将Maven作为“另一个构建工具”的时候,以这种有限的眼光去看待Maven,就如同去说Web浏览器不过是看看超文本罢了。
Maven以及与其相关的技术,开始在Java社区产生了一种变革。
除了解决浅显易懂,以及诸如简化构建、文档、发布以及部署的流程等问题以外,Maven也带来了越来越引人注目的好处。
越来越多的项目和产品使用Maven作为他们项目管理的基础。它变得易于在项目和构建系统建立关系,并且在这个关系之上导航和做报告。Maven的标准格式允许为项目编码使用一种“Semantic Web”。Maven的规范和中央仓库为项目定义了一种全新的命名系统。使用Maven可以很容易的加入其他的依赖项,并发布你自己的组件。
那么,现在来回答当初的问题:Maven对于不同的人有不同的用途。它是一系列标准和解决问题的方式,而不仅仅只是一个软件。它是一种将一系列软件,使用统一的格式来描述,作为一个个互相依存的组件集合来处理的方式。它是个人和团体如何协作来开发软件系统的未来发展方向。一旦你理解了Maven,你就会奇怪以前没有它是怎么做的开发。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/abigfrog/archive/2008/10/20/3109352.aspx
一,什么是maven:
Maven是什么? 比较正式的定义:Maven是一个项目管理工具,它包含了:
一个项目对象模型 (Project Object Model),
一组标准集合,
一个项目生命周期(Project Lifecycle),
一个依赖管理系统(Dependency Management System),
和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后 Maven 可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
二,如何配置maven:
1,从网站http://maven.apache.org/download.html 获取maven2的文件包;
2,解压该maven包,并配置一下环境变量:
在系统变量里的添加path :D:dev filesapache-maven-2.0.9-binapache-maven-2.0.9bin
3,在dos下输入命令:mvn -v,如果配置正确将会得到maven的版本信息等。
三,如何简单使用maven构建一个项目:
1,在dos下进入要创建项目的目录,如C盘;
2,输入命令创建项目(以实际五彩石项目为例):
mvn archetype:create -DgroupId=com.taobao.mytest -DartifactId=five-stone
3,命令执行完成后会在当前目录下生成下面的文件结构:
4,查看自动生成的默认的pom.xml文件内容:
5,配置文件的相关说明:
groupId:项目或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.taobao.mytest生成的相对路径为:/com/taobao/mytest
artifactId: 项目的通用名称
packaging: 打包的机制,如pom, jar, maven-plugin, ejb, war, ear, rar, par
version:项目的版本
name: 项目的名称, Maven 产生的文档用
url: 哪个网站可以找到这个项目,提示如果 Maven 资源列表没有,可以直接上该网站寻找, Maven 产生的文档用,一般有自己的资源库时不需要此项。
6,运行以下命令:
C:five-stone>mvn -U clean eclipse:clean eclipse:eclipse
C:five-stone>mvn -U clean eclipse:clean eclipse:eclipse -DdownloadSources=true
7,eclipse加载项目,至此搭建完成。
8,一些常用相关的命令操作:
在测试方法里增加一条打印的语句:
mvn test:运行应用程序中的单元测试(testApp()),将输出“welcome to taobao!”
mvn package:依据项目将在target文件下生成jar文件:five-stone-1.0-SNAPSHOT.jar
mvn clean:清除目标目录中的生成结果
mvn install: 将项目的jar文件添加到资源库中, 以备依赖此项目时使用
mvn eclipse:eclipse:生成Eclipse项目文件,此时项目可以成功import到eclipse中
———————————————————
至此,maven2的入门实践操作到此结束,如果按照上面的步骤能成功的完成到最后,那么你已经具备了最基本的项目构建能力。但是事实上,这些都是最基础的,如果想进一步了解如何管理自己的项目,那么就不能不说到两个核心的配置文件:pom.xml和setting.xml。关于配置文件的理解和maven2的深入学习将在下篇文章提到,欢迎继续关注,谢谢!
maven2学习总结(1,入门起步与实践)相关推荐
- numpy pytorch 接口对应_拆书分享篇深度学习框架PyTorch入门与实践
<<深度学习框架PyTorch入门与实践>>读书笔记 <深度学习框架PyTorch入门与实践>读后感 小作者:马苗苗 读完<<深度学习框架PyTorc ...
- 2021-春季学习-智能车技术创新与实践-Lesson3
课程内容 ▌01 课程背景 1.课程简介 2.第三周课程内容 本周理论课程内容为: 本周实验内容 ▌02 课程内容准备 ▌01 课程背景 1.课程简介 具体内容参见: 智能车技术创新与实践(01510 ...
- 2021-春季学习-智能车技术创新与实践-Lesson2
课程内容 ▌01 课程背景 1.课程简介 2.[课程预告] 3.Linux以及ROS自学简介 4. ROS相关资料 (1)ROS-WiKi ▌02 课程设计 1.机器人操作系统ROS简介:SC21 S ...
- 2021-春季学习-智能车技术创新与实践-Lesson 1
▌01 课程背景 1.课程简介: 具体内容参见: 智能车技术创新与实践(01510422-90)课程简介 上课时间地点: 星期六第1节(前八周),六教6A211: 星期六第2节(前八周),六教6A21 ...
- 2021-春季学习-智能车技术创新与实践(90)
▌01 课程的基本信息 1.课程基本信息 课程简介: 智能车技术创新与实践(01510422-90)课程简介 上课时间地点: 星期六第1节(前八周),六教6A211: 星期六第2节(前八周),六教6A ...
- 【百家稷学】深度学习与计算机视觉核心理论与实践(中国地质大学实训)
继续咱们百家稷学专题,本次是有三AI在中国地质大学进行的暑期课程教学.百家稷学专题的目标,是走进100所高校和企业进行学习与分享. 分享主题 本次分享是在中国地质大学机械与电子信息学院进行,主题是&l ...
- 强化学习之基础入门_强化学习基础
强化学习之基础入门 Reinforcement learning is probably one of the most relatable scientific approaches that re ...
- 如何学习Linux / 新手入门
如何学习Linux / 新手入门 一.从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的.例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用 ...
- asp.net从入门到精通配套课件_MATLAB从入门到算法实践第八期本周六直播
推荐Matlab算法经典课程,此课程已经经过7次升级和打磨,累计超过3000多人学习,想从零基础入门和想提高Matlab编程水平的同学推荐加入学习. 讲师介绍 董辰辉 Matlab 畅销书主编.上市公 ...
最新文章
- linux操作系统的特点有哪些,LINUX操作系统有哪些概念和特点?
- 【边缘计算】边缘计算元年一文看懂云边协同!九大场景带来新一轮信息革命...
- DevOps Troubleshooting(1)-运维思想
- Bitbucket Pipelines在Atlassian的Bitbucket云上提供持续交付功能
- 【研究院】滴滴研究院,都在做什么
- java获取web.xml 参数_解析web.xml中在Servlet中获取context-param和init-param内的参数
- SAP Gateway service language determination
- 软件测试b s环境如何配置,B/S架构测试环境搭建_DB2篇(Win32系统)
- 信息学奥赛一本通 1245:不重复地输出数 | OpenJudge NOI 1.11 08:不重复地输出数
- oracle游标多线程,多线程jdbc游标分页查询原理 oracle和mysql分页
- 如何在Vue中使用Font Awesome?
- Linux篇 | 磁盘存储和文件系统
- OO第二次课程总结分析
- mysql tuner sh_MySQL性能提议者:mysqltuner.pl
- html5与access连接数据库操作,access是一个什么数据库?
- 练习时长两年半的Matlab
- 三级缓存 SD—内存—网络
- mysql指定取值范围_MySQL中各种字段的取值范围(转)
- golang 实现数据结构-顺序栈
- Ilog cplex, java 表示分段线性函数 piecewise function
热门文章
- Jenkins 笔记
- XeLaTeX插入GB/T 7714-2005规范的参考文献方法
- tornado学习笔记18 _RequestDispatcher 请求分发器
- B表中的pid对应A表中id,查询A表中数据,根据b表中对应a表中该id的数据数目排序...
- Oracle中的Union、Union All、Intersect、Minus
- QWidget: Must construct a QApplication before a QPaintDevice
- 微软计划2008年初发布Windows Server2008
- 马化腾:用户体验的10/100/1000法则
- Java socket调用Http协议Get请求
- SpringBoot整合Mybatis,使用通用mapper和PageHelper进行分页