项目管理利器——Maven阅读目录
阅读目录
假设公司要开发一个新的Web项目,使用目前流行的struts2、spring、MyBatis进行新项目开发。那么接下来首先要进行的工作就是各个框架的jar包的下载。大家通常的做法是先到struts2的官网下载struts2的jar包,再到spring的官网下载spring的jar包,再到MyBatis官网下载MyBatis的jar包以及一些其他的相关的第三方jar包。
项目还没开始,我们的lib目录下就有百八十的jar包,有用的、没用的、各个版本相互冲突的。没冲突,删吧,不知道哪些个之间有关联,不删吧,项目臃肿的不行。还好,感谢开源界的大神,给我们提供了Maven、Ant、gradle优秀的项目管理和项目构建工具,它让我们更为方便的来管理和构建我们的项目。
下面会对Maven进行学习,主要学习要点:
1. Maven快速入门;
2. Maven核心知识;
3. Maven建立Web项目。
本文主要介绍Maven以及它的环境搭建。
一、Maven介绍及环境搭建
1. Maven的概念
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。
简单来说,Maven可以帮助我们更有效的管理项目。
下载Maven,需要访问:maven.apache.org
在左侧列表download选项下:
Maven3.3版本需要JDK1.7以上的支持。
下载之后,解压查看相应的目录:
查看bin目录:(bin目录包含mvn的运行脚本)
bin目录包含mvn的运行脚本。在windows命令行中输入mvn,就会调用这个脚本。
m2.conf 这是一个配置文件。
查看boot目录:(boot目录包含一个类加载器的框架)
boot目录包含一个类加载器的框架,Maven是使用它来加载自己的类库。
查看conf目录:(conf是配置文件目录)
conf是配置文件目录,比如我们以后经常用到的setting.xml
lib目录下:(包含Maven平时所用到的类库,除了自身的,还包含第三方依赖的类库)
2. maven环境变量配置
环境变量分为用户变量和系统变量。
如果你的电脑是多人使用的,那么为了不影响他人,你就应该在用户变量中进行设置。(用户变量:属于电脑各个用户的变量。)
如果你的电脑是私人的,就可以在系统变量进行设置。(系统变量:所有电脑用户共用的变量。)
- M2_HOME:变量值设为maven安装目录;
- path:设置为%M2_HOME%\bin;
如何验证环境变量是否配置成功?
打开cmd命令提示符dos:输入mvn -v
如果可以查看到相关的版本信息,就说明环境变量配置成功。
二、构建Maven版的Hello World
先了解Maven的目录结构:
pom.xml
注:
groupId的值就是项目的包名
artifactId的值就是模块名,这里一般建议使用项目名
version的值是版本名 一般是快照
使用maven构建的一个小例子:
1:使用maven约定的构建目录结构
2:按照约定的目录结构构建项目
3:编写简单的测试代码
4:配置pom配置文件
5:运行maven基本命令管理对应的小例子
6:根据命令的提示信息解决构建项目中犯的错误,并且理解每个命令实际做了那些具体的事情。
三、Maven常见构建命令
- mvn -v :查看Maven版本
- mvn compile:编译
- mvn test: 测试
- mvn package:打包
- mvn clean: 清除maven生成的target目录(target中存放的是项目经过编译的字节码文件和测试报告)
- mvn install:将生成的jar安装到本地仓库中
maven编译代码的流程:
1. 执行mvn compile 命令编译java代码文件
2. 如果发现代码中引用到了其他的包文件(jar包)
3. 首先回去核心配置文件pom.xml文件中去查找相应的配置依赖
4. 根据配置依赖先去本地的仓库中查找jar包资源
5. 如果本地不存在,则会再去联网到maven的中央仓库中查找
四、自动创建目录骨架
创建目录骨架的方式有两种。
Maven为我们提供了archetype插件,用于创建符合Maven规定的目录骨架。
根据Maven规定,要在:
- mvn archetype:generate:运行命令后提示输入版本,groupId,artifactId,version,package
- mvn archetype:generate -DgroupId:组织名,公司域名反写+项目名 -DartifactId:项目名-模块名 -Dversion:版本 -Dpackage:包名。一次性创建。
方式1:
方式2:直接设置完所有的参数,建立maven目录骨架
五、Maven中的坐标和仓库
- 坐标的概念:构件
Maven世界中唯一标识一个构件的标识,一般由groupId/artifactId/version三部分组成,另外,作者建议artifactId和项目名要一致,这样更清晰,也更容易查找。
- 仓库的概念:
放置各种依赖的地方。仓库分为两种:本地仓库和远程仓库。
本地仓库找不到我们需要的构件,它会去中央仓库查找,查找到之后就会下载到本地仓库中
C:\apache-maven-3.3.9\lib\maven-model-builder-3.3.9\org\apache\maven\model\pom-4.0.0.xml——Maven为我们提供的超级pom我们所有的pom都会记录这个pom这里记录的有全球的中央仓库 ,中央仓库中放置了几乎所有开源项目的资源——jar包。
- 镜像仓库:
Maven的中央服务器都是放置在国外的,有时我们不能访问外网,国内也有他的镜像仓库,这样就能更好的访问了。
apache-maven-3.3.9\conf\settings.xml这个文件中就配置着镜像的信息,可以配置国内的镜像文件的路径,这样就能更快更好的访问了。
- 更改仓库的位置:
maven从远程中央库下载的资源默认放在了C:\Users\Administrator\.m2\repository这个目录,为了安全性,一般不会选择放在c盘下可以修改本地仓库的目录,指定到更安全的目录下,另外,setting.xml这个文件也需要另存一份,这是为了更新版本的时候不用重新修改这个配置文件。
六、在eclipse中安装Maven插件以及创建Maven项目
如果电脑安装的是eclipse4.0或者myeclipse,就不用再安装Maven插件了。
查看自己的eclipse是否安装插件:
eclipse 》》preferences ,查看是否有Maven选项。
eclipse默认运行在jre上,而maven插件需要jdk的支持。
步骤:
- 下载maven插件,解压放至eclipse的dropins中或在线更新(http://m2eclipse.sonatype.org/sites/m2e , m2e-extras为扩展 )
- 在eclipse.ini中添加jdk
-vm
C:\Program Files\Java\jdk1.7.0_75\bin\javaw.exe - 修改eclipse-选项中maven的maven目录和setting位置。
- 创建maven项目
- run as -->build as -->在goals中complile-->run
- 若报-Dmaven.multiModuleProjectDirectory 错误,则在选项-->java-->installed JRES中配置 -Dmaven.multiModuleProjectDirectory=$M2_HOME
七、Maven的生命周期和插件
- 完整的项目构建过程包括:
清理、编译、测试、打包、集成测试、验证、部署。
这几个步骤对应的都有插件来完成。
- Maven生命周期:clean、compile、test、package、install
- Maven的生命周期分为三个独立的生命周期(每一个生命周期有分为若干个阶段,其中defaul是最核心的一个):
- clean:清理项目
- default:构建项目
- site: 生成项目站点
- clean生命周期包含的阶段:
pre-clean : 执行清理前的工作
clean : 清理上一次构建生成的所有文件
post-clean : 执行清理后的文件 - default构建项目(最核心)
default生命周期包含的阶段比较多,比较常用的就是compile、test、package、install
- site生成项目站点:
- pre-site 在生成项目站点之前要完成的工作
- site 生成项目的站点文档
- post-site在生成项目站点后要完成的工作
- site-deploy发布生成的站点到服务器上
注意,Maven的生命周期对应的命令是顺序执行的,如果没有人为的顺序的一个个执行,那么Maven会默认的自动运行。
from: http://www.cnblogs.com/Qian123/p/5197750.html
项目管理利器——Maven阅读目录的更多相关文章
- 项目管理利器——Maven
假设公司要开发一个新的Web项目,使用目前流行的struts2.spring.MyBatis进行新项目开发.那么接下来首先要进行的工作就是各个框架的jar包的下载.大家通常的做法是先到struts2的 ...
- 项目管理利器-Maven(Windows安装)
什么是Maven? 安装Maven环境: 下载地址:https://maven.apache.org/download.cgi Maven3.3+JDK1.7以上版本 下载windows版本 解压到本 ...
- maven课程 项目管理利器-maven 3-2 maven自动建立目录骨架
使用cmd创建maven目录的两种方式: 使用archetype插件 1 按照提示进行选择 步骤: a 进入指定目录 b mvn archetype:generate --创建项目目录 c ente ...
- 项目管理利器---Maven
Maven快速入门 maven介绍 maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建.报告和软件的项目管理工具.简单来说,maven可以帮助我们更有效的管理项目,也是一套 ...
- maven课程 项目管理利器-maven 1-2maven介绍和环境搭建
maven简介: Maven是基于项目对象模型(POM),通过一小段描述信息来管理项目的构建.报告和文档的软件项目管理工具. 1.1 Maven安装文件夹的结构 bin 目录放置包含mvn的运行脚本 ...
- maven课程 项目管理利器-maven 4-1 使用maven创建web项目 5星
本节主要讲了使用maven创建web项目 主要分这三大类: 1 新建maven web项目 2 后续处理普通java项目转web项目需要关注的点 3 maven特色转web需要关注的点 1 新建ma ...
- maven课程 项目管理利器-maven 3-5 maven生命周期和插件 4星
本节重点: maven插件的使用 本节主要内容: 1 maven生命周期 2 maven插件的使用 3 零散知识点 1 maven生命周期 maven生命周期主要有三个: a clean 清理项目 ...
- maven课程 项目管理利器-maven 3-4 eclipse安装maven插件和新建maven项目
本节主要讲了两个主要内容, 1 eclipse安装maven插件 2 新建maven项目 3 本人实操 1 eclipse安装maven插件 eclipse4.0以上和myec ...
- maven课程 项目管理利器-maven 3-1 maven常用的构建命令
mvn -v 查看mvn版本 mvn compile 编译 mvn test 测试 mvn package 编译,打包(这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功 ...
随机推荐
- #error#学习方法,如何避免初始化错误
#error#学习方法,如何避免初始化错误.错误来自:本博客的另一篇文章Demo示例程序源代码: ,01-导航实例-QQ空间.xcodeproj - CYLLoginViewController.mD ...
- python脚本运行的几种方式
1.脚本式编程 将如下代码拷贝至 hello.py文件中: print ("Hello, Python!"); 通过以下命令执行该脚本: $ python ./hello.py h ...
- [转]如何整理Linux磁盘碎片,竟与Windows的方式大不同 返回操作系统首页
Linux 系统永远不需要整理磁盘碎片的神话相信很多人都听说过.由于 Linux 采用了优秀的日志文件系统(ext2.ext3.ext4, btrfs等),在绝大多数情况下确实是不需要进行磁盘碎片整理 ...
- AE特效-与MAYA的结合、制作音乐舞蹈太极动作
http://blog.sina.com.cn/s/blog_a439a2670101fbkk.html AE特效-与MAYA的结合.制作音乐舞蹈太极动作 (2013-07-24 14:44:12) ...
- KVM的ept机制
转载:http://ytliu.info/blog/2014/11/24/shi-shang-zui-xiang-xi-de-kvm-mmu-pagejie-gou-he-yong-fa-jie-xi ...
- OSI和TCP/IP的对比+IP地址分类
一.OSI和TCP/IP对比 二.IP地址分类 A类私有IP地址:10.0.0.0-10.255.255.255B类私有IP地址:172.16.0.0-172.31.255.255C类私有IP地址:1 ...
- Sublime text3 插件ColorPicker(调色板)不能使用快捷键的解决方法
我的原因是:convertToUTF8和ColorPicker快捷键冲突,convertoUTF8的默认转换GBK的快捷键 和 ColorPicker打开调色板的快捷键都是ctrl+shift+c . ...
- Jest+Enzyme React js/typescript测试环境配置案例
本文案例github:https://github.com/axel10/react-jest-typescript-demo 配置jest的react测试环境时我们可以参考官方的配置教程: http ...
- 静态页面表单中js验证
笔记: 1. onblur事件:onblur 事件会在对象失去焦点时发生.http://www.w3school.com.cn/jsref/event_onblur.asp onkeyup事件:onk ...
- 将csv格式的数据文件导入/导出数据库+添加新的字段
最近一直忙于实验室的事情,没有好好更新博客,在抓包的过程中,遇到了很多问题. 因为我常用Wireshark将抓包信息导出为csv文件,这里简单mark一下将csv文件导入/导出到数据库的2种方法: 一 ...