maven环境快速搭建

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

最近,开发中要用到maven,所以对maven进行了简单的学习。因为有个maven高手在身边,所以,很快就上手了,我这里算是自我总结吧。关于maven是什么东东,请参考其它文章。

----------------准备工作-------------

Jdk  1.5以上java开发环境。

Eclipse IDE 一个。

Maven 3.0.3下载地址: http://maven.apache.org/docs/3.0.3/release-notes.html

----//快速搭建步骤

 

第一步:配置maven环境

 

将下载文件解压,然后设置maven环境

如果你配置过jdk的话,这里对你应该不难。如我的maven环境为:F:\maven\apache-maven-3.0.3

我的电脑-----属性----高级-----环境变量-----环境变量-----新建

变量名:M2_HOME

变量值:F:\maven\apache-maven-3.0.3

找到path 

在环境变量值尾部加入:;%M2_HOME%\bin;---前面注意分号

当然,你也可以直接在path 路径下加入:;F:\maven\apache-maven-3.0.3\bin  只是上面的方式更优雅一点。

我新建立

打开命令提示符(开始---运行---cmd,检查我们的java环境和maven环境是否有误

第二步:修改仓库位置

修改我们仓库地址,仓库用于存放我们项目所依赖的所有jar包。

我的仓库路径:F:\maven\repo----这个路径是我自己创建,你可以将路径创建在任何位置。

我们打开…\apache-maven-3.0.3\conf\目录下的setting.xml文件,设置成我们创建的仓库路径

下面我们用一个命令验证一下。打开命令提示符,输入:mvn help:system 

该命令会打印出所有的java系统属性和环境变量。这些信息对我们日常的编程工作很有帮且。

如果运行的过程中没有错误,打开我们仓库(F:\maven\repo)会发现里面多了一些文件。这些文件就是我们从maven的中央仓库下载到本地仓库的。

第三步:创建maven项目

创建一个我们自己的项目。

我们通过maven命令行方式创建一个项目

mvn archetype:create -DgroupId=com.chongshi.test -DartifactId=hello -DpackageName=com.chongshi.test -Dversion=1.0

因为是第一次构建项目,所有依赖的jar包都要从maven的中央仓库下载,所以需要时间等待。等以后我们的本地仓库中积累了我们常用的jar包后,我们的开发将变得非常规范和方便。^_^!!

借助下载jar包的时间,我们来了解一下pom.xml文件。

<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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.chongshi.test</groupId><artifactId>hello</artifactId><version>1.0</version><packaging>jar</packaging><name>hello</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>
</project>
Ø project:pom.xml文件中的顶层元素; 
Ø modelVersion:指明POM使用的对象模型的版本。这个值很少改动。
Ø groupId:指明创建项目的组织或者小组的唯一标识。GroupId是项目的关键标识,典型的,此标识以组织的完全限定名来定义。比如,org.apache.maven.plugins是所有Maven插件项目指定的groupId。 

Ø artifactId:指明此项目产生的主要产品的基本名称。项目的主要产品通常为一个JAR文件。第二,象源代码包通常使用artifactId作为最后名称的一部分。典型的产品名称使用这个格式: <artifactId>- <version>. <extension>(比如:myapp-1.0.jar)。 

Ø version:项目产品的版本号。Maven帮助你管理版本,可以经常看到SNAPSHOT这个版本,表明项目处于开发阶段。 

Ø name:项目的显示名称,通常用于maven产生的文档中。 

Ø url:指定项目站点,通常用于maven产生的文档中。 

Ø description:描述此项目,通常用于maven产生的文档中。

 

对于一个项目中只有下面的一部分是是我们需要关注的:

<groupId>com.chongshi.test</groupId>

 <artifactId>hello</artifactId>

 <version>1.0</version>

 

第四步:编译项目代码

我们的项目已经创建完成。但我们点开目录发现,它并不是我们eclipse所需要的项目目录格式。我们需要把它构建成我们eclipse可以导入的项目。

在命令提示符下进入到我们的创建的项目目录(F:\maven\hello)下,执行:mvn clean compile


Clean 告诉maven清理输入出目录target/,compile告诉maven编译项目主代码。

不要急,我们又需要一段时间来下载,相关jar包。^_^!第一次用maven要学会淡定。

项目是编译完了,但项目的目录结构还不是我们想要的eclipse的项目结构,是不能导入到eclipse中的。所以,还需要执行一个命令:mvn eclipse:eclipse

命令执行完成后就得我们需要的项目目录了。

第五步:导入eclipse工具

打开的我们的eclipse工具。

先配置maven仓库路径

Window----Perferences-----java-----Build Path-----Classpath Variables

New一个变量的类路径。

 

Name :M2_REPO   注意这个名字必须要大写。

Path :F:/maven/repo  点击“Folder…”找到有本地仓库的位置。

 

下面,可以导入我的hello项目了。Eclipse如何导入项目,我这里就不说了,如果你是个java开发人员的话。

 

第六步:包的更新与下载

 

打开项目发现我们junit 是3.8.1的,有点老了。那我想换成4.7的,如何通过maven的方式更换呢。其实,很简单,打开我们项目下的的pom.xml文件。

……
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.8.1</version><scope>test</scope></dependency></dependencies>
……

更改变,junit的版本号,然后重新执行:mvn eclipse:eclipse  

Maven 中央仓库地址:http://search.maven.org

 

假如,我们想下载一个struts jar包。在搜索框内搜索strruts ,会要列出中央仓库中的所有struts版本。

列表的格式与我们pom.xml配置文件的格式是对应的。

我们在pom.xml中加入:

<groupId>stuts</groupId>

 <artifactId>struts-scripting</artifactId>

 <version>1.0.1</version>

然后更新项目就可从中央仓库下载我们想要的任意jar包(必须是开源的包)

 

继续学习内容:

1. 如何创建一个web项目?

  如果想让maven应用到项目开发中,这个是必须的。

2. 如何使用jeety?

  maven提供的一个容器,类似于tomcat

3. 如何创建一个代理仓库?

  如果是团队开发,这个很有必要,我们不可能每次都到中央仓库拿包,那样很慢,如果开发人员A已经下了某包,开发人员B还要下;创建代理仓库,A第一次下的包会存入代理仓库中,B要用时直接从代理仓库取就行。

转载于:https://my.oschina.net/baochanghong/blog/417420

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20190718考试70分记

又考试了&#xff0c;这次题明显感觉难多了&#xff0c;骗了不少分&#xff0c;竟然rk13 第一题一看不可做&#xff0c;然后看第二题 第二题一开始也没有思路&#xff0c;然后我就看上了k<1的情况&#xff0c; 显然k0时只要求所有数的gcd即可&#xff0c; k1的话枚举每一个树…

[散记]今天

前几天还下了一场不小的雪&#xff0c;冷的很。昨天出门还穿了厚毛衣和棉外套&#xff0c;起风的时候还觉得凉飕飕的。今天就热的很了&#xff0c;天气预报说最高温度有16度。出门换了薄毛衣和薄外套&#xff0c;走了一段路&#xff0c;竟是闷热的很&#xff0c;索性将外套脱掉…

火狐、IE浏览器实现Extjs的grid表格的复制、粘贴

2019独角兽企业重金招聘Python工程师标准>>> 从后台获取参数&#xff0c;一次填入ext&#xff1a;grid网状表格&#xff0c;发现表格内的数据不能复制粘贴&#xff0c;只能read...&#xff0c;火狐和IE 11都不能复制。 火狐解决方案 局部定义表格复制、粘贴的样式&a…

Form表单的主要Content-Type

在Spa单页面横行的时代&#xff0c;前后端交互基本都是Json交互&#xff08;也有通过FormData的&#xff0c;比如上传文件&#xff09;。而在之前的Jsp&#xff0c;Php前后不分家的时候&#xff0c;前后交互好大一部分都是通过Form表单来完成的。From标签个属性叫 enctype&…

perl子例程

2019独角兽企业重金招聘Python工程师标准>>> sub 子例程名($$)指定两个标量的参数 ($)指定一个数组 按引用调用 符号引用 typeglob 类似于UNIX文件系统中的软链接 星号(*)适用于任意类型的变量&#xff0c;包括标量&#xff0c;数组&#xff0c;散列&#xff0c;文件…

FormView在什么情况下自动生成模板项?

刚才在鼓捣GridView与FormView&#xff0c;记得前一段时间在做时&#xff0c;点击gridview中的一项会在formview中显示详细的数据&#xff0c;而在 formview中只有编写了ItemTemplate等模板才会显示&#xff0c;我清楚的记得上次我并没有手工去编写itemTemplate模板&#xff0c…

Java遍历Map的几种方式

方法一&#xff1a;使用lambda表达式 Map<Integer, Integer> temp new HashMap<>(); temp.put(1,1); temp.put(2,1); temp.put(3,1); temp.forEach((k, v) -> System.out.println(v));其中&#xff0c;k是键&#xff0c;v是值 运行结果&#xff1a; 方法二&…

Java使用数组作为Map的key

先说结论&#xff1a;Map使用数组作为key&#xff0c;存放的是其地址 我们用如下代码进行测试&#xff1a; 我们的本意是 将[‘a’,‘b’,‘c’]的字符数组存放入map且对应的value为1查询map中是否包含key为[‘a’,‘b’,‘c’]的键值对将[‘a’,‘b’,‘c’]的字符数组对应的…

电脑电视兼容成科技行业新课题

随著深受网民喜爱的网络娱乐节目层出不穷&#xff0c;科技行业一个尚未解决的问题被提上日程&#xff1a;发明让用户得以在电视机上随意收看网络节目的产品。眼下&#xff0c;微软(Microsoft Corp.)、苹果电脑(Apple Computer Inc.)和英特尔(Intel Corp.)等多家行业巨头正在紧锣…

LeetCode—49. 字母异位词分组

49. 字母异位词分组 题目描述&#xff1a; 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的字母得到的一个新单词&#xff0c;所有源单词中的字母通常恰好只用一次。 考察重点&#xff1a;转为…

移动web性能优化笔记

移动web性能优化 最近看了一些文章&#xff0c;对移动web性能优化方法&#xff0c;做一个简单笔记 笔记内容主要出自 移动H5前端性能优化指南和移动前端系列——移动页面性能优化 转载于:https://www.cnblogs.com/GongQi/p/4534392.html

mysql04

连接查询 连接方式 1.交叉连接&#xff1a;交叉连接是将两个表不设定任何条件的连接结果。这种方式会产出好多个无效行。所以不用。 2.内连接 语法 select * from tb_name join tb2_name on tb_name.idtb2_name.id(注意 两个id字段的值应该是相等的&#xff09; 3.外连接 左&am…

我想和你一起去这样一个地方

当我从网站看到这则图片,我不禁惊叹有这样一个世外桃源,可以这样漂亮这样水天一色,我是多渴望能够与深爱的人一起去这个地方,享受我们休闲的白天,度过我们浪漫的夜晚,就这样,我也愿意和你每天每夜呆在一起.当我看到这则相片的时候,我心里只想着他,想和他一起去度假,我很喜欢痴住…

LeetCode—50. Pow(x, n)

50. Pow(x, n) 题目描述&#xff1a; 实现 pow(x, n) &#xff0c;即计算 x 的 n 次幂函数&#xff08;即&#xff0c;x^n &#xff09;。 考察重点&#xff1a;倍乘&#xff0c;使用递归&#xff0c;每次addN取2,4,8,16…个数进行累乘&#xff0c;直到addN > n,则用n-ad…

php结合jquery异步上传图片(ajaxSubmit)

2019独角兽企业重金招聘Python工程师标准>>> php结合jquery异步上传图片&#xff08;ajaxSubmit&#xff09;&#xff0c;以下为提交页面代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/T…

LeetCode—287. 寻找重复数

287. 寻找重复数 题目描述&#xff1a; 给定一个包含 n 1 个整数的数组 nums &#xff0c;其数字都在 [1, n] 范围内&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一个重复的整数。 假设 nums 只有一个重复的整数 &#xff0c;返回这个重复的数 。 你设计的…

LeetCode—51. N 皇后(困难)

51. N 皇后&#xff08;困难&#xff09; 题目描述&#xff1a; n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击&#xff0c;即令其中任意两个皇后都不同列、同行和在一条斜线上。 给你一个整数 n &#xff0c;返回所有不…

unity 角色换装

unity角色换装的关键是更改角色部位上的物体的SkinnedMeshRenderer组件的属性&#xff1a; 更改mesh:mesh决定了部位的物体的外形&#xff0c;是主要的数据。 刷新骨骼&#xff1a;同一个部位下&#xff0c;不同的mesh受到的不同的骨骼的影响不同&#xff0c;因此更换mesh之后&…

Hadoop:pig 安装及入门示例

pig是hadoop的一个子项目&#xff0c;用于简化MapReduce的开发工作&#xff0c;可以用更人性化的脚本方式分析数据。 一、安装 a) 下载 从官网http://pig.apache.org下载最新版本(目前是0.14.0版本)&#xff0c;最新版本可以兼容hadop 0.x /1.x / 2.x版本&#xff0c;直接解压到…

LeetCode—289. 生命游戏

289. 生命游戏 题目描述&#xff1a; 根据 百度百科 &#xff0c; 生命游戏 &#xff0c;简称为 生命 &#xff0c;是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子的面板&#xff0c;每一个格子都可以看成是一个细胞。每个细胞都具有一个初…