学习Java 的同学就一定会学习Maven, 那么Maven为什么会得到大量用户的使用呢?它是用来干什么的呢 ?接下来就来介绍

Q:Maven的作用?

(1)Maven可以自动化构建项目,可以从清理、编译、测试到生成报告、打包、部署等等功能都可以自动化完成,将我们从繁琐的工作中解脱出来

(2)解决项目的依赖繁杂以及版本不一致的问题

(3)Maven管理了项目中零散的信息,比如项目描述等,还能轻松获得项目文档、测试报告等等

(4)可以将分模块的项目更好地管理起来(Maven的继承和聚集)

Q: Maven目录结构?

Maven主要的目录结构如下:

--bin     (存放了maven运行的脚本命令,我们调用的maven命令其实就在里面)

--boot  (Maven 的类加载器)

--conf   (Maven 的配置文件,里面包含重要的setting.xml文件,通过修改该文件可以配置 Maven 行为)

--lib      (包含Maven 运行的所有类库,以及一个超级POM,所有Maven项目都会默认继承这个Maven项目)

Q:setting.xml 的主要配置

首先,我们需要明白 setting.xml 所处的位置不同,管辖的范围也不一样:

处于Maven安装目录的conf 文件夹下的settings.xml 是全局性的,通过设置里面的元素可以对全局进行管理,

而在user/.m2/settings.xml里面的settings,xml是对当前用户的设置,在里面的设置会覆盖全局设置

settings.xml 文件包含的配置信息如下:

<settings>
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors/>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>

localRepository:主要用于设置Maven的本地仓库,Maven默认的本地仓库处于 user/.m2/repository 里面,可以修改为你想要的地方, 比如 <localRepository> E:/repository </localRepository>

offline: 表示是否开启离线模式,默认为false,开启离线模式后,在每次构建时,就不会从远程仓库下载最新的依赖,当然,如果开启离线模式后,需要的依赖包本地仓库没有,就会报错,而不是自动去下载

servers:一般用于对远程仓库的访问添加用户名密码等认证信息,因为如果要访问的远程仓库需要进行身份认证,就必须填写这些信息,将认证信息写在这里而不是pom.xml文件中的原因是pom.xml 文件是需要

随着项目发布的,不能起到保密作用,写法如下:

<servers>
<server>
<id></id> (id需要与pom.xml中声明的远程仓库id相同)
<username></username>
<password></password>
</server>
</servers>

mirrors:用于设置Maven镜像,镜像是指本来要访问A远程仓库的,现在全部转到访问B镜像,我们一般将阿里云的镜像设置为远程中央仓库的镜像

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

proxies:设置代理,一般用于公司内部不能直接访问外网,必须通过代理服务器对外网进行访问的情况

Q:在eclipse中使用Maven需要注意什么?

1、在eclipse中使用自己的Maven,确保eclipse中的Maven和命令行的Maven是同一个

2、确保自己eclipse能找到正确的settings.xml配置文件

3、修改 jre 版本,由于用Maven模板创建出来的Maven项目,使用的jre版本很低,所以需要进行修改,修改方式:

点击项目右键-->buildPath,然后按照如下操作:

同时还要修改pom.xml文件的编译插件的版本(因为我们之前说过,所有Maven都会继承lib文件夹中的父类POM,但是父类POM中的编译插件配置版本实在是太老了,所以我们必须手动覆盖掉)

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<verbal>true</verbal>
</configuration>
</plugin>
</plugins>
</build>

4、在eclipse中添加依赖,在eclipse中搜索maven依赖,并且添加到pom中: 右键点击项目,选择Mavem --> Add dependency,如下图:

在搜索框中搜索即可,如果搜索之后没有搜索到,但是本地仓库确实有此依赖,那么需要更新索引,点击window-->show view --> other -->maven repository,如下图,点击local repository的 rebuid index就可以了

Maven入门学习 (一)的更多相关文章

  1. maven入门学习(一)

    一.maven介绍 1.软件开发中我们为什么要使用maven呢?(纯属个人体会观点,如有错误,敬请指正) (1)其一,企业岗位需求,目前的IT开发招聘岗位上,基本都要求会使用maven.        ...

  2. Maven入门学习

    1 Maven的安装 maven下载路径:http://maven.apache.org/download.cgi 我是在win7上安装了,安装后在cmd输入 mvn -v: C:\Users\*** ...

  3. Maven入门学习,安装及创建项目

    一.maven介绍: 1.maven是一个基于项目对象模型(POM Project Object Model),通过配置文件管理项目的工具(项目管理工具). 2.maven主要功能:发布项目(从编译到 ...

  4. Maven学习专题--Maven入门及安装

    因为项目需要,新项目需要使用Maven开发,但是组内大部分没有接触过maven.我就毅然承担搭建maven环境的任务了.因为一切重头开始,就想把自己的整个搭建环境.项目创建.框架整合和模块管理整个过程 ...

  5. dubbo入门学习笔记之入门demo(基于普通maven项目)

    注:本笔记接dubbo入门学习笔记之环境准备继续记录; (四)开发服务提供者和消费者并让他们在启动时分别向注册中心注册和订阅服务 需求:订单服务中初始化订单功能需要调用用户服务的获取用户信息的接口(订 ...

  6. Maven学习总结(1)——Maven入门

    Maven学习总结(一)--Maven入门 一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的 ...

  7. Maven入门详解

    什么是Maven Maven,鼎鼎大名,在今天之前,我对于它一直是处于一种"只闻其名不见其人"的状态.之所以说"只闻其名",是因为Maven太有名了,它是Apa ...

  8. Maven入门详解以及Eclisp的集成

    1.首先要安装Maven到操作系统上 Maven的下载页面:http://maven.apache.org/download.html Maven跟Tomcat很像,下载下来后直接解压在指定的目录就安 ...

  9. Maven入门2-pom.xml文件与settings.xml文件

    Maven入门2-pom.xml文件与settings.xml文件 本文内容来源于官网文档部分章节,settings.xml文件:参考http://maven.apache.org/settings. ...

随机推荐

  1. vim ctags

    ctags -I __THROW -I __attribute_pure__ -I __nonnull -I __attribute__ --file-scope=yes --langmap=c:+. ...

  2. 基于socket实现大文件上传

    import socket 1.客户端: 操作流程: 先拿到文件--->获取文件大小---->创建字典 1.制作表头 header  如何得到 他是一个二进制字符串 序列化得到 字典字符串 ...

  3. Sql 语句中使用参数

    using System; using System.Data; using System.Data.SqlClient; namespace ConsoleApplication2 { public ...

  4. 05.Linux-CentOS系统本地Yum源搭建

    CentOS系统 1.挂载镜像光盘[root@localhost ~]# mount /dev/sr0 /media/cdrom/ 2.创建本地yum源仓库[root@localhost ~]# cd ...

  5. 二、搭建Swagger

    1.新建.netCore webapi项目 2.安装swagger ,通过 Package Manager 控制台:Install-Package Swashbuckle.AspNetCore 3.修 ...

  6. linux--基础知识1

    #进入终端窗口,root命令提示符#,普通用户登陆提示符$,切换终端用户 ctrl+shift+F2,退出终端命令exit #init 0 关机  reboot 重启  ls查看当前目录下文件  ls ...

  7. Reference与ReferenceQueue

    Reference源码分析 首先我们先看一下Reference类的注释: /** * Abstract base class for reference objects. This class def ...

  8. postgresql相关sql集锦

    1.类似于oracle的listagg->string_agg SELECT area_county,)total FROM project_info GROUP BY area_county ...

  9. css3 first-of-type选择器以及css3选择器中:first-child与:first-of-type的区别

    CSS3 first-of-type选择器 “:first-of-type”选择器类似于“:first-child”选择器,不同之处就是指定了元素的类型,其主要用来定位一个父元素下的某个类型的第一个子 ...

  10. 24.mongodb可视化工具部署——2019年12月19日

    2019年10月09日17:05:54 教程链接:https://blog.csdn.net/qq_32340877/article/details/79142129 项目名:adminMongo g ...