项目管理--maven浅析《一》之开发流程及常用命令
来源:互联网 发布:中韩贸易数据 编辑:程序博客网 时间:2024/05/17 00:57
一、什么是Maven?
Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。
注:Maven是Apache下的一个开源项目,是纯Java开发的,并且只能管理Java项目。
二、Maven的优点?
传统项目:
maven项目:
那么为什么两个相同的项目大小差距如此之大呢?原因就在于项目的jar包,总所周知,我们在做项目开发时jar包是很重要的
所以传统项目和Maven项目的差距就在于jar包;
传统项目:把所需的jar都要拷贝到项目下
Maven项目:不需要拷贝jar包,但并不是项目不需要jar包,而是该项目会到仓库中找jar包。这种方式叫做依赖管理,
可以节省空间。
那么问题来了,依赖管理又是什么?它是以来什么如何进行管理的呢?
原理:当我们创建一个maven项目并且完成好配置(如何配置后边说),我们项目中所需要的jar包,项目会根据指定的
本地仓库去找所需的jar包。那么,本地仓库如何没有所需的jar包,该怎么办呢?
这就要引出三级仓库:本地仓库、远程仓库(私服)、中央仓库
本地仓库:是指本地的一个装有jar包的文件夹个人维护
远程仓库(私服):是指公司的一个管理jar包的文件夹公司维护
中央仓库:是指maven相关专业工作人员进行维护的(据说有大约两个亿的jar包)
关系如图:
maven项目首先要到本地仓库找,有则使用,
没有则到远程仓库找,有,把找到的jar包拷贝一份到本地仓库,然后使用
没有,则到中央仓库找,找到之后拷贝到远程仓库和本地仓库,然后使用
注:如何要让maven使用我们制定的本地仓库时,我们需要做些配置(在maven--conf--setting.xml中)
根据配置文件可知,默认的的本地仓库路径为${user.home}/.m2/repository,${user.home}是指当前用户文件夹。
三、Maven的安装配置
1、下载Maven(百度官网下载即可)
2、解压缩文件
3、配置
在系统变量中配置MAVEN_HOME --- F:\UserJar\apache-maven\apache-maven-3.3.9
然后再Path系统变量后添加%MAVEN_HOME%\lib;
注:该版本的maven所需要的jdk要求在1.7以上
4、测试(命令:mvn -v)
图中标黄色的说明:maven可以自动找jdk运行环境,编码字符集,计算机操作系统等
四、Maven项目开发(此处以Myecplise10.0为例)
1、指定设置本地仓库
2、新建maven项目
注:图2标黄色选项默认是不选的,咱们新建项目都选上(跳过骨架),否则项目目录将不全
图三中:Group Id:公司或组织名称
Artifact Id:项目名称
Version:版本
Packaging:打包方式(jar--Java项目、war--web项目)
3、手动添加web.xml配置文件
注:webapp相当于web项目中的webRoot,我们需要在WEB-INF文件夹下创建一个web.xml配置文件,
一般都是拷贝过来。
4、处理编译版本(pom.xml)(设置jdk版本为1.7)【这段配置不是必须的】
<build><!-- 配置了很多插件 --><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.5.1</version> <configuration><source>1.7</source><target>1.7</target><encoding>UTF-8</encoding></configuration></plugin></plugins></build>5、创建servlet,此时就会出现问题了,大量报错,就是因为我们的项目没有导入jar包,
导入jar包的配置文件如下
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.9</version><scope>test</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jsp-api</artifactId><version>2.0</version><scope>provided</scope></dependency></dependencies>分别导入了Junit、servlet-api、jsp-api,当然导包绝对不会这样编码配置文件的方式,后边还会细说。
配置完成之后错误就会消失了。此时项目中会出现对象的jar包文件
5、启动项目,右键项目 -- Run AS -- Maven build...
到此,一个maven项目架构就搭建好了。
四、maven项目整合struts2(在以上的基础上开发)
1、导包,上边的案例我们是为了解maven项目结构直接拷贝的代码,这次我们就看如何导入jar包
添加视图maven Repositores
右键Local Repositories,点击builde index
这样视图就创建好了,那么我们如何添加所需jar包呢?
打开pom.xml文件的Dependencies视图,
点击add,在A出输入你所需要的jar包,就会自动检索(在你创建的索引中检索),
选中你所需要的jar包,Group Id、Artifact Id、Version就会自动选中
注:C处Scope属性选择provided,可以避免面目导入的jar包和tomcat中的jar包中途问题
添加完成后再看pom.xml文件,我们添加的jar包配置就会出现了,并且相关包也会自动导入
截止到这,maven项目整合struts2就算结束了,
下边就是创建struts.xml配置文件、在web.xml文件中配置strutsPrepareAndExecuteFilter控制器,创建动作类、
创建视图,就可以完成了。比较简单,这里不再细说。
五、Maven常用命令(clean、compile、test、package、install、tomcat:run)
clean:清理编译文件(也就是项目编译后会产生一个target文件夹(编译文件))
compile:编译主目录文件
test:编译并运行test目录的代码
package:打包
命令执行完成,生成war包(项目名后边的0.0.1-SNAPSHOT就是创建maven项目是选的版本号)
install:把项目发布到本地仓库
命令执行完成后,项目会发布在本地仓库
tomcat:run 一键启动项目
===================================================================================
坚持别人不能坚持的坚持,终将收获别人不能收获的收获。这就是我,一个纯粹想靠技术改变命运的人。
- 项目管理--maven浅析《一》之开发流程及常用命令
- 项目管理--maven浅析《二》之管理SSH项目整合开发
- 《项目管理利器Maven》学习(一):Maven概述及搭建Maven开发环境
- SSM框架--springMVC浅析《一》之开发流程及组件介绍
- 项目管理--maven浅析《四》之私服(Nexus)
- SSH框架--struts2浅析《一》之开发流程
- 项目管理--maven浅析《三》之分模块管理SSH项目
- maven介绍及常用命令(一)
- maven介绍及常用命令(一)
- maven介绍及常用命令(一)
- Maven常用命令及Maven项目中常见问题
- maven安装及maven项目导入流程
- maven项目管理之(一) 中央仓库
- 一点一点学maven(02)——手动构建maven项目之helloworld及常用命令使用
- 敏捷开发项目管理流程
- Maven结合Nexus管理项目配置流程
- maven,nexus管理项目流程思路
- Struts1框架一之项目的配置及执行流程
- 阿里数据库监控druid配置
- Faster-Rcnn训练自己的数据集
- list的三种遍历方式
- Mysql定时任务
- (一)配置服务器环境
- 项目管理--maven浅析《一》之开发流程及常用命令
- linux下vi或vim操作Found a swap file by the name的原因及解决方法
- 【Shell脚本攻略】-shell中各种括号()、(())、[]、[[]]、{}的作用
- JAVA JSON 解析
- 逻辑斯谛回归与最大熵模型
- 微信网页授权之地理位置获取----微信js-sdk
- 总结react中遇到的坑和一些小的知识点
- lombok插件
- AR-API-详解EBS接口开发之应收款处理2