maven安装和使用前的几个点
以前的以前,听说过maven,也有幸安装过,没怎么用过,都是按照网上别人的记录照着做的,感觉好没有意思,现在我想自己弄清楚一些事情。一起来源于配置文件,和在网上多搜索多看,多实践。
我用的包是这个apache-maven-3.0.4-bin.zip
我的操作系统是win10.
下面是我觉得比较重要的几个点:
- maven依赖的环境变量
- maven自身需要设置的环境变量
- 如何设置本地仓库
- 如何指定远程的仓库
- 如何手动添加包
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>
如何指定远程的仓库:
通过在settings.xml文件添加相关信息

按照被注释掉的内容添加相关信息就可以了。通过在项目的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安装和使用前的几个点的更多相关文章
- Maven使用笔记(一)Maven安装及常用命令
1.Windows下安装Maven 首先去下载Maven安装包,http://maven.apache.org/download.cgi,目前最新版本是 Maven 3.2.3 . 解压到本地,可以看 ...
- maven安装、配置及创建工程
准备工作 java开发环境(JDK) maven下载地址:http://maven.apache.org/release-notes-all.html 一.安装 安装maven超级简单,总共分三步: ...
- Java开发环境配置(4)--Maven安装 环境变量配置,本地仓库配置---插件安装
说明在前:本人用过的 luna mars 等,都已经自带maven插件的了,以下有些文章是很老的,讲到maven插件的安装都可以忽略掉. maven安装eclipse在线配置maven搞定所有插件_ ...
- 基于Centos搭建Maven 安装与使用
CentOS 7.2 64 位操作系统 安装 Maven Maven 简介 Apache Maven 是一个软件项目管理及自动构建工具,由 Apache 软件基金会所提供.基于项目对象模型(缩写:PO ...
- [maven] 实战笔记 - maven 安装配置
1.下载地址http://maven.apache.org/download.html 2.windows下安装maven(1)下载 apache-maven-3.0-bin.zip 解压到任意目录下 ...
- 转载maven安装,配置,入门
转载:http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html 本书代码下载 大家可以从我的网站下载本书的代码:http://ww ...
- 【Java】Maven安装、Eclipse配置以及相关错误解决集合
作者呕血总结,下面写的每一个错误我都遇过 · Maven安装 · Eclipse配置 · Maven安装 安装前请确保已经装有JDK. 一. 准备Maven程序包 到官网https://maven.a ...
- Maven安装,配置及更改本地资源库
安装 1.确保已安装JDK,和配置JAVA_HOME环境变量 . 注:Maven 3.2 要求 JDK 1.6 或以上版本, 而 Maven 3.0/3.1 需要 JDK 1.5 或以上,这里安装的是 ...
- maven 安装后变成 mvn 不是内部命令解决方法
1.maven的安装教程 下载地址为:http://maven.apache.org/download.cgi 进入此页面之后 点击下载,然后解压,我把目录名改为maven,目录结构如下图所示 下面我 ...
随机推荐
- android 获取webview内容真实高度(webview上下可滚动距离)
正常获取: mainWebView.getContentHeight()//获取html高度 mainWebView.getScale()//手机上网页缩放比例 mainWebView.getHeig ...
- 用eclipse中自带的jetty启动项目
1.建立datasources.xml,创建jndi <jee:jndi-lookup id="datasource" jndi-name="jndiname&qu ...
- python之路之考试题目
- P1582 倒水(贪心 + lowbbit)
https://www.luogu.com.cn/problem/P1582 #include <bits/stdc++.h> using namespace std; #define i ...
- js bug
1 加载模块脚本失败:服务器以非JavaScript MIME类型“text/html”响应. 描述:ES6 import Class时路径出错,少一个 / ,添上即可
- Flink流处理(四)- 时间语义
4. 时间语义(Time Semantics) 这章我们会介绍时间语义,以及在流中,对于时间的各种不同的概念的描述.同时我们也会讨论一个流处理器在事件乱序的情况下,如何能提供精准的结果,以及如何使用流 ...
- 【C语言】利用二维数组输出成绩
目的:用二维数组输出下面成绩 希望你可以成为第五名童鞋! 代码: #include<stdio.h> int main() { /* 创建一个带有 4行 5 列的数组 */ ][] = { ...
- [AGC027C]ABland Yard
Description AGC027C 给定一张图,点有标号A或B,计算是否对于任意的一个由AB构成的字符串都在图中有对应的路径. Solution 观察可以发现,如果有个环(不一定是简单环)是AAB ...
- python+selenium:浏览器webdriver操作(1)--基本对象定位
1.简单对象的定位-----自动化测试的核心 对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象.一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身份证 ...
- Elasticsearch系列---shard内部原理
概要 本篇我们来看看shard内部的一些操作原理,了解一下人家是怎么玩的. 倒排索引 倒排索引的结构,是非常适合用来做搜索的,Elasticsearch会为索引的每个index为analyzed的字段 ...