一、什么是maven,有什么用?

  Maven是一个项目构建和管理的工具,其主要服务于基于java平台的项目构建、依赖管理和项目信息管理。它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

二、maven安装

  1.去maven官网下载并解压maven,并配置环境变量

  

    

  配置完成后在命令行cmd 运行mvn -version  查询对应的版本号

  2.配置文件settting.xml的简单配置(最好是将setting.xml文件复制一份到本地仓库中,然后进行修改)

    ①配置创建项目时默认的jdk版本,在<profiles></profiles>标签中添加<profile></profile>,这样每次update项目的时候就会变为默认的jdk版本,这里是默认全局设置的编译版本

  

    <profile>
<id>jdk-1.7</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.7</jdk>
</activation>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
</properties>
</profile>

  

    ②配置私有仓库的位置(maven所有的本地jar包都会放在私有仓库里面),其默认位置是当前用户目录下.m2文件夹中。通过修改下面的路径可以修改本地仓库的位置。

    

    ③配置中央仓库,使用阿里云仓库作为中央仓库的镜像,因为国外的仓库访问非常慢

    

<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

    

  

  

三、eclipse使用maven

  eclipse 直接创建maven project  ,项目结构如下:

  

四、pom文件解析

  pom是项目对象模型(Project Object Model)的简称,是maven的核心,其定义了整个项目的基本信息,如何构建项目、项目依赖的jar包等。

  简单的pom解释如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <!-- 组织名 -->
<groupId>com.kyle</groupId>
<!-- 定义了当前Maven项目在组中唯一的ID -->
<artifactId>demo</artifactId>
<!-- 版本号 -->
<version>0.0.1-SNAPSHOT</version> <!-- 指定了POM模型的版本,对于Maven2及Maven3来说,它只能是4.0.0 -->
<modelVersion>4.0.0</modelVersion>
<!-- 项目打包方式有pom、jar、war等 -->
<packaging>war</packaging>
<!-- 项目名,maven产生文档用 -->
<name>demo</name>
<url>http://maven.apache.org</url> <!-- 继承的父项目 -->
<!-- <parent>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</parent> --> <!--项目引入依赖包-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies> <build>
<finalName>demo</finalName>
<plugins>
<!-- 引入插件,设置java编译版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build> </project>

  详细的pom解析:

  https://www.cnblogs.com/oskyhg/p/6445589.html

  https://blog.csdn.net/sunzhenhua0608/article/details/32938533

  https://blog.csdn.net/wdx1121/article/details/79664385

五、maven的生命周期和相关命令

  1.一个项目的构建过成通常包括清理、编译、测试、打包、集成测试、验证、部署等。Maven从中抽取了一套完善的、易扩展的生命周期。Maven的生命周期是抽象的,其中的具体任务都交由插件来完成。Maven为大多数构建任务编写并绑定了默认的插件。

  2.Maven定义了三套生命周期:clean、default、site,每个生命周期都包含了一些阶段(phase)。三套生命周期相互独立,但各个生命周期中的phase却是有顺序的,且后面的phase依赖于前面的phase。执行某个phase时,其前面的phase会依顺序执行,但不会触发另外两套生命周期中的任何phase。

    

      

    

  3.maven常见的命令

  

validate:验证项目是正确的,所有必要的信息都是可用的
compile:编译项目的源代码
test:使用适当的单元测试框架测试编译后的源代码。这些测试不应要求将代码打包或部署
package:使用已编译的代码,并将其打包成可分布格式,例如JAR。
verify:对集成测试的结果进行任何检查,以确保满足质量标准
install:将包安装到本地存储库中,以便在本地其他项目中使用该包
deploy:在构建环境中完成,将最终的包复制到远程存储库中,以便与其他开发人员和项目共享。

    这些生命周期阶段(加上这里没有显示的其他生命周期阶段)是按顺序执行的,以完成默认的生命周期。鉴于上面的生命周期阶段,这意味着当使用默认的生命周期时,Maven将会优先执行检查项目(validate),然后将会尝试编译源代码(compile),运行集成测试方案(test),验证了集成测试(verify),验证包安装到本地存储库(install),然后将安装包部署到远程存储库(deploy)。

    

    

maven的安装与基本使用的更多相关文章

  1. MyEclipse对Maven的安装

    好记性不如烂笔头,记录一下. 操作系统:windows 7 MyEclipse2015 JDK1.7 maven的下载链接,点这里下载apache-maven-3.0.4-bin.tar.gz. 下载 ...

  2. (二)Maven的安装与环境配置

    想要安装 Apache Maven在Windows 系统上, 需要下载 Maven 的 zip 文件,并将其解压到你想安装的目录,并配置 Windows 环境变量. 所需工具 : 1.JDK 2.Ma ...

  3. Maven的安装配置

    本文主要是针对mac os系统下maven的安装教程. 1.首先验证是否有jdk.java -version,没有需要手工安装 2.maven的下载地址:http://maven.apache.org ...

  4. maven本地安装jar包同时生成pom文件

    maven 本地安装jar包:mvn install:install-file -Dfile=本地路径/ojdbc12.jar -DgroupId=com.oracle -DartifactId=oj ...

  5. MyEclipse下Maven的安装配置

    Maven常用命令: •mvn archetype:generate :创建 Maven 项目 •mvn compile :编译源代码 •mvn test-compile :编译测试代码 •mvn t ...

  6. Maven的安装、配置及使用入门

    Maven的安装.配置及使用入门 本书代码下载 大家可以从我的网站下载本书的代码:http://www.juvenxu.com/mvn-in-action/,也可以通过我的网站与我取得联系,欢迎大家与 ...

  7. Maven(1)-安装和配置

    Maven(1)-安装和配置 一.本机必须安装好Jdk 二 .maven下载 http://maven.apache.org/download.cgi ,下载后把maven-bin解压到自己的目录即可 ...

  8. maven的安装与使用

    一.Maven是什么 Maven是一个采用纯Java编写的开 源项目管理工具.Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义 ...

  9. maven的安装,maven库配置和Eclipse插件的安装

    maven的安装,maven库配置和Eclipse插件的安装 1.下载并解压maven 2.配置环境变量 3.配置maven配置文件 1.下载链接 Downloading Apache Maven 2 ...

  10. Maven 的安装配置

    Maven 的安装配置 一.在安装 Maven 之前,先确保JDK1.7及以上版本并且配置好环境变量. 二.下载maven的bin,在apache官方网站可以下载. 1.首先去官网下载 Maven:h ...

随机推荐

  1. kubernetes 利用label标签来绑定到特定node运行pod

    利用label标签来绑定到特定node运行pod: 不如将有大量I/O的pod部署到配置了ssd的node上或者需要使用GPU的pod部署到某些安装了GPU的节点上 查看节点的标签: kubectl ...

  2. BZOJ2616 SPOJ PERIODNI(笛卡尔树+树形dp)

    考虑建一棵小根堆笛卡尔树,即每次在当前区间中找到最小值,以最小值为界分割区间,由当前最小值所在位置向两边区间最小值所在位置连边,递归建树.那么该笛卡尔树中的一棵子树对应序列的一个连续区间,且根的权值是 ...

  3. POJ3468/splay树/成段更新

    板子题,正在努力看懂板子.. http://blog.csdn.net/acm_cxlove/article/details/7815019 http://www.cnblogs.com/kuangb ...

  4. robotframework中RIDE的下载及安装

    1.首先说一下我当前的环境配置 win10系统64位 python3.6.5,已配置环境变量 2.安装RIDE前需要安装的依赖包(使用pip就可以直接安装) 首先必须有robotframework这就 ...

  5. 怎么用Verilog语言描述同步FIFO和异步FIFO

    感谢 知乎龚大佬 打杂大佬 网上几个nice的博客(忘了是哪个了....) 前言 虽然FIFO都有IP可以使用,但理解原理还是自己写一个来得透彻. 什么是FIFO? Fist in first out ...

  6. 【XSY1098】第k小 可持久化trie

    题目描述 给你一个长度为\(n\)数列\(a\),有\(m\)次操作: \(1~x\):把所有数异或\(x\) \(2~x\):把所有数与\(x\) \(3~x\):把所有数或\(x\) \(4~l~ ...

  7. 洛谷P3602 Koishi Loves Segments(贪心,multiset)

    洛谷题目传送门 贪心小水题. 把线段按左端点从小到大排序,限制点也是从小到大排序,然后一起扫一遍. 对于每一个限制点实时维护覆盖它的所有线段,如果超过限制,则贪心地把右端点最大的线段永远删去,不计入答 ...

  8. 【BZOJ5302】[HAOI2018]奇怪的背包(动态规划,容斥原理)

    [BZOJ5302][HAOI2018]奇怪的背包(动态规划,容斥原理) 题面 BZOJ 洛谷 题解 为啥泥萌做法和我都不一样啊 一个重量为\(V_i\)的物品,可以放出所有\(gcd(V_i,P)\ ...

  9. emwin之错误使用控件函数导致死机现象

    @2018-10-15 导致死机的代码示例如下 /** * @brief widget ID define * @{ */ #define ID_WINDOW_0 (GUI_ID_USER + 0x0 ...

  10. vue路由原理剖析

    单页面应用(SPA)的核心之一是: 更新视图而不重新请求页面, 实现这一点主要是两种方式: 1.Hash: 通过改变hash值 2.History: 利用history对象新特性(详情可出门左拐见:  ...