以前的以前,听说过maven,也有幸安装过,没怎么用过,都是按照网上别人的记录照着做的,感觉好没有意思,现在我想自己弄清楚一些事情。一起来源于配置文件,和在网上多搜索多看,多实践。

我用的包是这个apache-maven-3.0.4-bin.zip

我的操作系统是win10.

下面是我觉得比较重要的几个点:


  1. maven依赖的环境变量
  2. maven自身需要设置的环境变量
  3. 如何设置本地仓库
  4. 如何指定远程的仓库
  5. 如何手动添加包

maven依赖的环境变量:

在脚本mvn.bat中有如下描述:

@REM Required ENV vars:

@REM JAVA_HOME - location of a JDK home dir

如果系统有JAVA_HOME环境变量就只需要把 mvn.bat所在的目录添加到PATH变量就可以了。然后在cmd中输入mvn - v就可以了:

当然完全可以在这个脚本的开头设置自己想用的JDK版本,比如我在mvn.bat文件开头设置:

然后重新打开cmd,再次执行mvn -v 效果如下:

可以看到两次的jdk版本不一样。

也就是说maven依赖的环境变量是JAVA_HOME


maven自身需要设置的环境变量:

就像JAVA_HOME之于java,M2_HOME指定了maven的安装位置。JAVA_HOME是个那些需要java环境的程序需要使用的。同样M2_HOME也是为别的程序服务,在之前我是用的idea10在构建maven项目时候,明明安装了maven(只是在PATH添加了mvn.bat所在的目录)却又提示没有设置M2_HOME。

目前我所知道的是maven自身所需要设置的是M2_HOME


如何设置本地仓库:

在maven安装目录下面的conf目录里面有配置文件settings.xml,在里面可以看到如下注释:



也就是说默认情况下当前用户目录下的.m2/repository目录,但是随着maven的使用,在网上下载的jar包会占用很多的空间,最好的办法还是把本地仓库设置在别的盘符下,而不是在C盘下。

# 我的E盘还有点空间。。。
<localRepository>E:\.m2\repository</localRepository>

如何指定远程的仓库:

  1. 通过在settings.xml文件添加相关信息



    按照被注释掉的内容添加相关信息就可以了。

  2. 通过在项目的pom.xml文件中添加远程仓库的信息


<project ...>
<repositories>
<repository>
<id>java.net</id>
<url>https://maven.java.net/content/repositories/public/</url>
</repository>
</repositories>
</project>

如何手动添加包

Failed to execute goal on project chapter1: Could not resolve dependencies for project com.smart:chapter1:war:3.1-SNAPSHOT: The following artifacts could not be resolved: org.apache.commons:com.springsource.org.apache.commons.logging:jar:1.1.1, fakepath:com.springsource.net.sf.cglib:jar:2.1.3: Could not find artifact org.apache.commons:com.springsource.org.apache.commons.logging:jar:1.1.1 in central (http://repo.maven.apache.org/maven2) -> [Help 1]

[ERROR]

有时候在网上down的一个别人的demo但是发现pom中指定的组件通过maven取不到了,此时可以从网上手动下载该组件,然后手动的把这个组件添加到本地仓库:

到当前组件所在的目录:


# 先安装错误提示找出缺少的jar包(com.springsource.org.apache.commons.logging-1.1.1.jar),然后定位到pom文件的dependency,找到jar包的详细信息:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>com.springsource.org.apache.commons.logging</artifactId>
<version>${apache.commons.version}</version>
</dependency> # 再执行如下命令,对应位置替换即可
mvn install:install-file -Dfile=com.springsource.org.apache.commons.logging-1.1.1.jar -DgroupId=org.apache.commons -DartifactId=com.springsource.org.apache.commons.logging -Dversion=1.1.1 -Dpackaging=jar

手动安装jar到maven本地仓库的截图:

maven安装和使用前的几个点的更多相关文章

  1. Maven使用笔记(一)Maven安装及常用命令

    1.Windows下安装Maven 首先去下载Maven安装包,http://maven.apache.org/download.cgi,目前最新版本是 Maven 3.2.3 . 解压到本地,可以看 ...

  2. maven安装、配置及创建工程

    准备工作 java开发环境(JDK) maven下载地址:http://maven.apache.org/release-notes-all.html 一.安装 安装maven超级简单,总共分三步: ...

  3. Java开发环境配置(4)--Maven安装 环境变量配置,本地仓库配置---插件安装

    说明在前:本人用过的 luna  mars 等,都已经自带maven插件的了,以下有些文章是很老的,讲到maven插件的安装都可以忽略掉. maven安装eclipse在线配置maven搞定所有插件_ ...

  4. 基于Centos搭建Maven 安装与使用

    CentOS 7.2 64 位操作系统 安装 Maven Maven 简介 Apache Maven 是一个软件项目管理及自动构建工具,由 Apache 软件基金会所提供.基于项目对象模型(缩写:PO ...

  5. [maven] 实战笔记 - maven 安装配置

    1.下载地址http://maven.apache.org/download.html 2.windows下安装maven(1)下载 apache-maven-3.0-bin.zip 解压到任意目录下 ...

  6. 转载maven安装,配置,入门

    转载:http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html 本书代码下载 大家可以从我的网站下载本书的代码:http://ww ...

  7. 【Java】Maven安装、Eclipse配置以及相关错误解决集合

    作者呕血总结,下面写的每一个错误我都遇过 · Maven安装 · Eclipse配置 · Maven安装 安装前请确保已经装有JDK. 一. 准备Maven程序包 到官网https://maven.a ...

  8. Maven安装,配置及更改本地资源库

    安装 1.确保已安装JDK,和配置JAVA_HOME环境变量 . 注:Maven 3.2 要求 JDK 1.6 或以上版本, 而 Maven 3.0/3.1 需要 JDK 1.5 或以上,这里安装的是 ...

  9. maven 安装后变成 mvn 不是内部命令解决方法

    1.maven的安装教程 下载地址为:http://maven.apache.org/download.cgi 进入此页面之后 点击下载,然后解压,我把目录名改为maven,目录结构如下图所示 下面我 ...

随机推荐

  1. android 获取webview内容真实高度(webview上下可滚动距离)

    正常获取: mainWebView.getContentHeight()//获取html高度 mainWebView.getScale()//手机上网页缩放比例 mainWebView.getHeig ...

  2. 用eclipse中自带的jetty启动项目

    1.建立datasources.xml,创建jndi <jee:jndi-lookup id="datasource" jndi-name="jndiname&qu ...

  3. python之路之考试题目

  4. P1582 倒水(贪心 + lowbbit)

    https://www.luogu.com.cn/problem/P1582 #include <bits/stdc++.h> using namespace std; #define i ...

  5. js bug

    1 加载模块脚本失败:服务器以非JavaScript MIME类型“text/html”响应. 描述:ES6 import Class时路径出错,少一个 / ,添上即可

  6. Flink流处理(四)- 时间语义

    4. 时间语义(Time Semantics) 这章我们会介绍时间语义,以及在流中,对于时间的各种不同的概念的描述.同时我们也会讨论一个流处理器在事件乱序的情况下,如何能提供精准的结果,以及如何使用流 ...

  7. 【C语言】利用二维数组输出成绩

    目的:用二维数组输出下面成绩 希望你可以成为第五名童鞋! 代码: #include<stdio.h> int main() { /* 创建一个带有 4行 5 列的数组 */ ][] = { ...

  8. [AGC027C]ABland Yard

    Description AGC027C 给定一张图,点有标号A或B,计算是否对于任意的一个由AB构成的字符串都在图中有对应的路径. Solution 观察可以发现,如果有个环(不一定是简单环)是AAB ...

  9. python+selenium:浏览器webdriver操作(1)--基本对象定位

    1.简单对象的定位-----自动化测试的核心 对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象.一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身份证 ...

  10. Elasticsearch系列---shard内部原理

    概要 本篇我们来看看shard内部的一些操作原理,了解一下人家是怎么玩的. 倒排索引 倒排索引的结构,是非常适合用来做搜索的,Elasticsearch会为索引的每个index为analyzed的字段 ...