一、Maven简介

1.什么是maven

Apache组织中的一个颇为成功的开源项目,Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理

2.Maven的好处

构建是程序员每天要做的工作,而且相当长的时间花在了这上面,而maven使这系列的工作完全自动化。 我们一直在寻找避免重复的方法,设计的重复,文档的重复,编码的重复,构建的重复等,maven是跨平台的,最大的消除了构建的重复

maven的其他优势:

1. maven不仅是构建工具,它还是依赖管理工具和项目管理工具(jar),提供了中央仓库,能够帮我们自动下载构件。

2.为了解决的依赖的增多,版本不一致,版本冲突,依赖臃肿等问题,它通过一个坐标系统来精确地定位每一个构件(artifact)。

3.还能帮助我们分散在各个角落的项目信息,包括项目描述,开发者列表,版本控制系统,许可证,缺陷管理系统地址。

4.maven还为全世界的java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何的流行开源软件。通过衍生工具(Nexus),我们还能对其进行快速搜索

5.maven对于目录结构有要求,约定优于配置,用户在项目间切换就省去了学习成本。

6.应用于大型项目,分模块开发,分团队每个模块开发

3.依赖管理

4.项目的一键构建

二、Maven的下载和安装

1.maven3.3.9下载和解压即可:Maven3.3.9下载

2.maven软件核心文件:解压后的conf文件夹下的setting.xml文件

3.maven环境变量配置

--maven是Java开发的,首先肯定是需要jdk的。

其次,maven3.3以上的版本都是需要jdk1.7以上版本

--为了在控制台可以直接用maven的mvn命令:

1.在系统变量添加

环境变量的名称:MAVEN_HOME

变量值:就是maven软甲解压的目录F:\class32\apache-maven-3.3.9

2、把MAVEN_HOME添加到path里

3、验证maven是否配置成功:

打开dos窗口输入: mvn –v

那么CMD进入一个maven项目目录下 输入mvn tomcat:run 就可以跑起maven项目了(服务器开启)。

4.上一步输入mvn tomcat:run后将会到远程下载编译插件jar等等,但可以通过配置本地仓库而使用本地的。

--本地仓库下载:本地仓库下载

--那么通过得maven的核心配置文件(解压后的conf文件夹下的setting.xml文件) 配置一下

有如下:

  <!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->

Default: ${user.home}/.m2/repository

表示仓库默认在:C:\Users\Administrator\.m2\repository ,我们可以把下载的仓库放到这,也可以修改这个本地仓库指定的路径。(我选后者)

我把本地仓库repository解压到了F:\JavaEE\repository

那么应该改成这样(最后一行)

 <!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
--> <localRepository>F:\JavaEE\repository</localRepository>

5.三种仓库

--本地仓库

--远程仓库(私服) 公司维护

--中央仓库 maven团队维护     大概两亿个jar包

本地仓库没有则依次向上级申请和下载,有点像一级二级三级缓存的意思。

三、演示入门程序

1.目录结构(项目名maven-helloworld)

----项目文件夹下的一级目录

pom.xml是maven项目的核心文件。


--项目文件夹下所有目录结构(实际上maven编译完还会生成个与src同级的target文件夹)

2.maven常用命令(都是cmd进入到maven项目下输入的)

--mvn clean 清理编译的文件(target)

--mvn Tomcat:run 一键编译并运行maven项目

--mvn compile  编译主目录(main)的文件

--mvn test 编译并运行test目录

--mvn package 把web项目打成包成war包并放到target(关于打包名字文件等在Pom.xml文件配置)

--mvn install 把web项目发布在本地仓库(打成war包和一些附属文件放到本地仓库文件夹下了)

提示:1.maven依赖管理的是jar包 和上面打成的 war包不同.web项目打成war,Java项目打成jar包

2.mvn install把mvn install、mvn test、mvn package都给执行了

快速入门Maven(一)的更多相关文章

  1. 快速入门maven

    1.快速介绍 maven(翻译:专家,内行)是apache(一个公司/组织)做的一个项目,或者说是软件,这个东西可以干什么? 可以用它来对咱们做的项目进行改进,增加开发效率,比如帮助你自动导入jar包 ...

  2. 快速入门Maven(三)

    一.整合ssh框架的Maven项目 1.传递依赖 只添加了一个struts2-core依赖,发现项目中出现了很多jar, 这种情况叫 依赖传递 2.依赖版本冲突的解决 (1)第一声明优先原则(就是谁写 ...

  3. 快速入门Maven(二)(Eclipse构建Maven项目)

    Mars2的eclipse()已经集成了Maven插件,所以用这个版本不需要装插件了. 接下来构建: 一.调整Eclipse设置 1.选择3.3.9版本的maven软件 2.修改默认的本地仓库地址 二 ...

  4. Java实战及解析 — Maven快速入门

    五分钟快速入门 mvn --version mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -Darche ...

  5. Maven3 快速入门

    Maven3 快速入门 Maven 是目前大型项目构建的必备知识.本章会通过介绍 Maven 的作用,Maven 的基本语法,以及搭建企业级项目架构来快速入门 Maven .前两部分是理论知识只需要了 ...

  6. JAVA WEB快速入门之从编写一个基于SpringMVC框架的网站了解Maven、SpringMVC、SpringJDBC

    接上篇<JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP.IOC)>,了解了Spring的核心(AOP.IOC)后,我们再来学习与实践Maven.Sp ...

  7. (4)Maven快速入门_4在Spring+SpringMVC+MyBatis+Oracle+Maven框架整合运行在Tomcat8中

    利用Maven 创建Spring+SpringMVC+MyBatis+Oracle 项目 分了三个项目  Dao   (jar)   Service (jar)   Controller (web) ...

  8. (1)Maven快速入门_1maven安装

    Maven 快速入门 1.1 Maven官网下载     windows 系统 下载 下图红色框选处. 下载到本地解压, 创建一个本地maven仓库的目录 maven_lib 配置Maven的环境变量 ...

  9. SSM+Maven(教程二):Idea快速入门SSM+Maven框架。

    快速入门须知 这篇文章,直接应用已经搭建好的SSM框架.一般在公司里面,考虑框架的搭建.封装等问题,都由研发经理或者架构师完成,所以对于刚入门的小白来说,在去搭建整合花费的时间会很多很多.对于理解能力 ...

随机推荐

  1. maven:Fatal error compiling: 无效的目标发行版: 1.8.0_45 -> [Help 1]

    使用mvn clean install命令的时候出现如下的错误: Failed to execute goal org.apache.maven.plugins:maven-compiler-plug ...

  2. SRAM和DRAM的区别

    一.浅谈关于SRAM和DRAM的区别:https://www.cnblogs.com/nano94/p/4014082.html. 二.ROM.RAM.DRAM.SRAM和FLASH的区别,转自:ht ...

  3. golang开发:类库篇(五)go测试工具goconvey的使用

    为什么要使用goconvey测试程序 goconvey 集成go test,go test 无缝接入.管理运行测试用例,而且提供了丰富的函数断言.非常友好的WEB界面,直观的查看测试结果. 如果没有g ...

  4. FreeSql (三十四)CodeFirst 迁移说明

    FreeSql 支持 CodeFirst 迁移结构至数据库,这应该是(O/RM)必须标配的一个功能. 与其他(O/RM)不同FreeSql支持更多的数据库特性,而不只是支持基础的数据类型,这既是优点也 ...

  5. JAVA学习笔记—review基本知识[反射与异常]

    JAVA学习笔记—review基本知识[反射与异常] 1.异常: 1.1异常的分类: Java会将所有的异常封装成对象,其根本父类为Throwable. Throwable有两个子类:Error 和E ...

  6. charles 黑名单

    本文参考:charles 黑名单 charles 黑名单 功能:阻止对匹配HOST的请求:可以直接把请求丢掉,也可以直接返回403状态码: 我一般用黑名单工具来block一些软件的自动上传功能 黑名单 ...

  7. 03:H.264编码原理以及视频压缩I、P、B帧

    一:前言 H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中, 一般有差别的像素只有1 ...

  8. EasyJson 发布

    JSON库很常用了,现在开源的JSON库也有很多.但是我们仍然面临下列问题 1)时不时的爆出这个Json库出现漏洞,那个json库出现漏洞.一旦出现漏洞只能升级,想切换JSON都不成. 2)一个项目中 ...

  9. String的优化 Stringbuffer和Stringbuilder

    string 上次说到string是最好衍生出来的一种字符类型,实现原理是由char[].我们知道数组一旦创建时不可更改的,所以每一次进行字符串的拼接都是在new一个新的字符串进行添加,这样的话对内存 ...

  10. js之捕捉冒泡和事件委托

     以下为转载内容 一.事件流(捕获,冒泡)   事件流:指从页面中接收事件的顺序,有冒泡流和捕获流. 当页面中发生某种事件(比如鼠标点击,鼠标滑过等)时,毫无疑问子元素和父元素都会接收到该事件,可具体 ...