一  maven的安装

1 在镜像(https://mirrors.tuna.tsinghua.edu.cn/apache/)中下载指定的版本(注意,Maven 版本与IDE版本应保持匹配)。

2 解压之后需要进行配置

系统变量:M2_HOME:Maven安装路径

JAVA_HOME: JDK安装路径

path:  %MAVEN_HOME%\bin  (这样系统就可以在cmd环境下执行mvn命令了)

打开 cmd,在里面敲:mvn -v 可以看到正常版本信息,则表明配置成功。

接着,可以在cmd环境下输入命令:  mvn help:system  这样Maven就会不断的从网络上下各种一来文件。

3 在Eclipse中安装配置Maven

1) 基本配置

preferences -> maven -> local ...  ;  user....

十分简单的。。。主要是配置Maven 的安装路径,settings.xml的路径。

2)m2e插件的扩展配置

前面两步只是完成了Maven的基本绑定,如若想要在Eclipse中正常使用前面所绑定的Maven,则必须安装一个小插件——m2e插件,该插件起到衔接Eclipse与Maven的作用。安装步骤如下:

1)打开eclipse,菜单“Help”-“Install New Software...”

2)在Work with 地址栏输入:http://download.eclipse.org/releases/neon (注意:neon是eclipse对应的版本名称)。

3)在filter框中输入maven便能定位要安装的插件Maven Integration for Eclipse,选中之后点击next按钮进行安装步骤。

4)安装完成重启eclipse,菜单:Window --> preferences ,输入maven进行相关设置。

注:起初我所使用的Eclipse版本为 eclipse-jee-mars-1-win32-x86_64.zip,后来发现 eclipse-jee-mars-2-win32-x86_64.zip 已经集成了诸多必要的插件。因此建议安装mar2版本,这样可以省去很多时间和精力。

3)查找jar包

直接去 官  网 中搜索jar包的名称,即可使用官网所提供的maven坐标,添加到pom文件中即可。

二 maven的重要概念

1 基本组织规范

Maven采用了预定优于配置(Convention over Configuraion, COC) 原则,根据此原则,Maven 的主要预定有以下几条。

源代码应该位于${basedir}/src/main/java 路径下

资源文件应该位于${basedir}/src/main/resources路径下

测试代码应该位于${basedir}/src/test路径下

编译生成的class文件应该位于${basedir}/target/classes路径下。

项目应该会产生一个JAR文件,并将生成的JAR包放在${basedir}/target路径下。

2 Maven的生命周期(lyfecycle)

默认的声明周期包含以下几个核心阶段。

compile 编译项目

test 单元测试

package 项目打包

install 安装到本地仓库

deploy 部署到远程仓库

3 Maven坐标

pom.xml文件成为项目的对象模型(Project Object Model)描述文件。POM为项目提供了一个Maven坐标,也被成为唯一标识符,由以下四个元素组成(Maven坐标通常用英文冒号作为分隔符来书写)。

<groupId>   命名空间  : <artifactId>  项目名 : <packaging>  打包类型 : <version> 项目版本  。

4 资源库Repository

第一次运行Maven时,Maven会自动从远程资源库下载许多文件,包括各种Maven插件,以及项目所依赖的库。实际上,初始的Maven 工具非常的小,这是因为Maven本身的功能非常有限。几乎所有的功能是由Maven插件完成的。实际上Maven类似前端的Gulp工具。主要利用配置文件完成包管理功能。Maven所依赖的包都会保存在资源库中。Maven资源库可分为三种:

本地资源库(Local  Repository)  可在setting.xml中进行配置。

远程资源库 通常由公司或团队进行集中维护。目的是为了让全公司的项目使用相同的JAR包系统。

中央资源库(默认):由Mavwn官方维护。包含各种公开的Maven插件及第三方项目。地址为http://repo.maven.org/maven3

当Maven需要使用某个插件或JAR包时,MAVEN的搜索顺序为:本地资源库  —> 远程资源库 —> 中央资源库。

一般情况下,第一次运行后,从远程或中央资源库加载的资源会保存在本地资源库目录中,下次需要时会直接从本地资源库中提取。

此外,远程镜像也可以纳入远程资源库的范畴。可以在<mirror>元素或<profile>元素中进行配置远程资源库的路径。

5 依赖管理

POM包含的<dependency/>元素定义了一个依赖框架或依赖类库。Maven依赖管理具有传递性,有时需要使用<exclusions...>子元素排除指定的依赖。例如:

<dependency>

  <groupId>javax.activation</groupId>

  <artifactId>mail</artifactId>

<type>jar</type>

  <exclusions>

    <artifactId>activation</artifactId>

    <groupId>javax.activation</groupId>

  </exclusions>

<dependency/>

上面的配置指定该项目依赖 mail.jar,由于Maven的依赖具有传递性,因此会自动加载activation.jar进来。为了将activation.jar排除出去,即可在<exclusions>标签中进行指定。

三  maven的基本配置

修改安装目录的conf/settings.xml 与 用户目录.m2/settings.xml。主要涉及两个地方,一是镜像mirror 的配置;另外一个是local repository的配置。

1 修改maven 的settings.xml中的镜像配置,默认配置下载速度简直是龟速,可以修改为aliyun镜像。

  1. <mirrors>
  2. <!-- mirror
  3. <mirror>
  4. <id>mirrorId</id>
  5. <mirrorOf>repositoryId</mirrorOf>
  6. <name>Human Readable Name for this Mirror.</name>
  7. <url>http://my.repository.com/repo/path</url>
  8. </mirror>
  9. -->
  10. <mirror>
  11. <id>nexus-aliyun</id>
  12. <mirrorOf>*</mirrorOf>
  13. <name>Nexus aliyun</name>
  14. <url>http://maven.aliyun.com/nexus/content/groups/public</url>
  15. </mirror>
  16. </mirrors>

2 local repository的配置

这个目录可以使得maven所下载的jar包存储在指定的目录下,默认是存储在用户目录下,这样占据了C盘的空间,不太好。

  1. <localRepository>D:\Program Files\maven-repository</localRepository>

3  使用注意事项

如果Jar包下载到本地之后下载一半没有成功,需要删除整个的repository的内容,然后重启使用run as maven install下载。下载完成之后,需要使用maven update project进行更新。

四 maven的运行错误

1 报错 :

Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:aspectj-maven-plugin:2.6.1:compile (execution: default, phase: compile)

官网解释为这是一个 M2E_plugin_execution_not_covered 类型的错误。解决方法不止一个,这个方法来的比较快:

在plugins标签外加上 <pluginManagement> 标签即可。这种方法的最大弊端是需要修改文件,如果有多个项目则每一个项目的POM文件都需要进行修改,此外,还会影响版本管理。

另外一种较为直接彻底的方法是:在 Windows -> Preferences -> Maven -> LyfeCycleMapping中查看文件目录E:/eclipse_new/.metadata/.plugins/org.eclipse.m2e.core/lifecycle-mapping-metadata.xml

实际上这个目录下没有这个文件,所以需要去拷贝一个模板文件来进行适当的修改。

接着,需要到eclipse的安装目录下的plugins下的org.eclipse.m2e.lifecyclemapping.defaults_xxxxxx.jar文件中找到该文件。

将其中的lifecycle-mapping-metadata.xml拷贝出来进行加工,加入以下xml内容:

  1. <pluginExecution>
  2. <pluginExecutionFilter>
  3. <groupId>org.codehaus.mojo</groupId>
  4. <artifactId>aspectj-maven-plugin</artifactId>
  5. <versionRange>[1.9,)</versionRange>
  6. <goals>
  7. <goal>compile</goal>
  8. </goals>
  9. </pluginExecutionFilter>
  10. <action>
  11. <ignore />
  12. </action>
  13. </pluginExecution>

  这里的 [1.9,) 主要是因为POM中配置了1.9版本的插件。E:/eclipse_new/.metadata/.plugins/org.eclipse.m2e.core/这个目录下的lifecycle-mapping-metadata.xml文件只是在初始化时会下载插件,下载完之后(保存在本地 maven repository 仓库目录中)就不会使用到这个文件了。

2 报错:

[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

原因:eclipse默认是运行在jre上的,但是maven插件需要使用jdk,因此需要在eclipse修改Installed JRES。

解决方法:【Window】-->【Prefrences】-->【Java】-->【Installed JREs】修改为jdk即可。

3 报错

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

在官网中搜索nop,取得maven配置:

  1. <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop -->
    <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-nop</artifactId>
    <version>1.7.21</version>
    <scope>test</scope>
    </dependency>

结果就报错了。

解决方法:

把 <scope>test</scope> 注释掉就OK了。

五 利用maven添加和查看第三方框架源码与文档

1 先添加下载功能

默认情况下,Maven 只会选择下载项目运行所必要的jar包,不会下载第三方框架所对应的源码和文档jar包。因此需要在Eclipse中对Maven进行设置。具体方法为:

在eclipse中进入windows -> preferences -> Maven 选项,然后查看右侧 菜单来中 找到 Download Artifact Sources  选项勾选;如果想要下载JavaDOC  则勾选 DownloadArtifact JavaDOC 选项。点击apply  并确定。设置完成之后,就可以在maven install时下载所需的第三方框架源码包和文档jar包。

2 在Eclipse中设置文件路径

默认情况下,Eclipse不会绑定源码和文档的jar包路径。因此,想要查看这些框架的源码和注释,还需设置这些jar包的文件路径。具体方法为:

鼠标选中Eclipse 中 Maven 依赖的jar包(这里指的是你所想要看其源码和注释的目标jar包)。然后右键选择 Properties,分别设置 Source Attachment 与 Java doc location 的 jar 包的绝对路径即可。

AJDT插件的安装

http://download.eclipse.org/tools/ajdt/45/dev/update

参考:

[1]  http://www.cnblogs.com/wbyp/p/6381259.html

[2]  http://blog.csdn.net/xxd851116/article/details/25197373

[3]  http://www.bubuko.com/infodetail-743907.html

maven的安装与配置使用的更多相关文章

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

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

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

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

  3. 一.Maven的安装和配置整理

    Maven的安装和配置 1.1安装                 进入Maven官网的下载页面:http://maven.apache.org/download.cgi选择当前最新版本:" ...

  4. 1.Maven的安装及配置

    1 Maven 介绍 Maven这个词可以翻译为“知识的积累”,也可以翻译为“专家”或“内行”.本书将介绍Maven这一跨平台的项目管理工具.作为Apache组织中的一个颇为成功的开源项目,Maven ...

  5. Maven的安装、配置及使用入门+maven安装报错:JAVA_HOME【申明:来源于网络】

    Maven的安装.配置及使用入门+maven安装报错:JAVA_HOME[申明:来源于网络] Maven的安装.配置及使用入门:http://www.cnblogs.com/dcba1112/arch ...

  6. 【工具学习】——Maven的安装与配置

    [含义] 什么是构建? 构建,英文build.构建包括编译.运行.生成文档.打包.部署等等工作内容,如果我们每天手工去干这些事情,那会浪费很多的时间.因此,构建管理工具应运而生. maven,作为项目 ...

  7. linux ---maven的安装和配置

    linux下的maven的安装和配置:本人使用的是apache-maven-3.3.9-bin.tar.gz------安装maven的前提是JDK安装成功:java -version 测试一下--J ...

  8. Maven的安装与配置(eclipse,idea)

    Maven的安装与配置   一.需要准备的东西 1. JDK 2. Maven程序包 3. Eclipse 4. Idea 二.下载与安装 1. 前往https://maven.apache.org/ ...

  9. Java·Maven的安装与配置

    阅文时长 | 0.58分钟 字数统计 | 937.6字符 主要内容 | 1.引言&背景 2.Maven的下载与安装 3.Maven全局配置 4.Settings.xml文件的配置 5.远程仓库 ...

  10. Maven基本安装与配置

    百度Maven,进入Maven官网,点击Download 点击下载Binary zip包,下载到电脑上相应的位置即可. 找到下载文件,进行解压,解压到相应的文件夹下面,并且记住路径. 打开系统-> ...

随机推荐

  1. 基于VUE的九宫格抽奖功能

    HTML代码: <template> <div class="luckDraw"> <title-bar :title="title&quo ...

  2. J.U.C CAS

    在JDK1.5之前,也就是J.U.C加入JDK之前,Java是依靠synchronized关键字(JVM底层提供)来维护协调对共享字段的访问,保证对这些变量的独占访问权,并且以后其他线程忽的该锁时,将 ...

  3. UML图学习之二 类图

    类图(ClassDiagrams)是根据系统中的类以及各类之间的关系描述系统的静态视图.类图不仅显示系统内信息的结构,还描述系统内这些信息的行为.类图的一个重要目的是为其他图(如顺序图.交互图)定义一 ...

  4. 20170510 mysql导入导出csv

    一开始没加FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' 导致导出的csv没有进行分 ...

  5. js 数组与对象的区别

    学习javascript的时候,我曾经一度搞不清楚”数组”(array)和”对象”(object)的根本区别在哪里,两者都可以用来表示数据的集合.   比如有一个数组a=[1,2,3,4],还有一个对 ...

  6. 1.NET是什么

  7. java利用poi生成/读取excel表格

    1.引入jar包依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi< ...

  8. Linux指令--which,whereis,locate,find

    原文出处:http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html.感谢作者无私分享 which 我们经常在linux要查找某个文件,但 ...

  9. 关于 tomcat 配置时遇到的问题与警告及解决办法

    首先,我们在日常配置 tomcat 时,总是会遇到这样的问题: 有时候我们会重新头来配置 tomcat,但是现在我们并不需要那么做,方法很简单,请继续往下看: 这个问题是告诉我们 tomcat 在 4 ...

  10. MySQL中union和order by一起使用的方法

    MySQL中union和order by是可以一起使用的,但是在使用中需要注意一些小问题,下面通过例子来说明.首先看下面的t1表. 1.如果直接用如下sql语句是会报错:Incorrect usage ...