博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Maven的使用笔记
阅读量:5840 次
发布时间:2019-06-18

本文共 4127 字,大约阅读时间需要 13 分钟。

Maven

〇、Maven的作用

  1. 项目构建;

(用maven命令可以很简单地去建立、打包、部署一个项目)

  1. 项目管理;

(Maven是基于项目对象模型,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具)

  1. Jar包的依赖和下载;

(只要在配置文件中写好相关配置,它会自动地去jar包库里获取jar包)

一、环境搭建

          1.去官网下载好Maven的文件,是一个压缩包(其中src结尾的是maven的源代码,bin结尾的是maven编译好的文件包,使用时就用bin结尾的);

          2.配置环境变量,将下载好的maven压缩文件包解压,把里面的bin文件夹目录复制,粘贴到环境变量path的开头,注意最后要以分号结尾;

          3.在windows控制台里输入 mvn –version,若要相关版本信息显示,则说明配置成功;

二、Maven远程库和本地库

          1.当在项目开发过程中,需要引用一些jar包,maven会自动地帮我们获取;

          2.首先maven会在本地库中查找jar包,若找不着,则去远程库中查找,再找不着,它会查看是否有其它特殊的库地址配置信息,再去查找,还是找不着,报错;

          3.配置本地库:

                   默认本地库在C盘->用户名->.m2->repository下,当然我们可以修改本地库的地址;

                   在maven文件包conf文件夹下,setting.xml文件中(称为全局setting.xml),找到<localRepository>标签,在标签内写入我们需要自定义的本地库,并把该setting.xml文件复制一份放在和新本地库同一目录下(称为局域setting.xml),如无特别说明,本文全部setting.xml,都指的是局域setting.xml;

三、Maven基本项目结构

 

四、maven单个项目XML文件配置

0.该文件用以配置项目的基本信息、jar包的依赖;

1.该xml文件名为”pom.xml”,与项目的src目录放在同一目录;

2.pom.xml开头

1 
2 3
6 7 其它全部配置….8 9

 

3.项目基本信息

一般还加上version标签,会在项目打包后显示在项目包后;

4.项目依赖(可以理解为引用的其它jar包)

1 
2 3
4 5
6 7
8 9
10 11
12 13
14 15

 

五、基本命令使用

 

0.maven命令是以mvn开头的,要对项目使用命令时,先使用cd命令进入项目根目录,即存放src的目录;

1.mvn complie  编译源码;

2.mvn test 运行测试;

3.mvn package 打包

4.mvn install 在本地仓库中安装jar(即打包后把jar文件放到本地库中)

5.mvn clean 清除产生的项目

 

六、Eclipse中使用Maven

0.eclipse中自带了maven,有时候版本会太新或者太旧,我们可以更新它,而后直接使用;若未自带,装插件;

1.当然也可以指定自己配置好的maven:

  (1)在首选项中,找到Maven->Installations ,点击add,在Installation Home填入我们的maven文件包路径;

  (2)在User Setting里的User Setting填入setting.xml(本地仓库旁边那个)的文件路径;

2.可以使用Import导入一个maven项目;也可以新建一个maven项目,填写好项目基本信息后会自动生成一个maven的骨架;

3.运行相关Maven命令时,只要右键项目->运行方式->Maven ..(其中Maven Build...可以收到输入命令组合)

七、传递性依赖和依赖冲突

1.当’一个包’引用了’其它两个包’,而’其它两个包’又引用了’其它包’,则’其它包’也会引入’一个包里’;I(a->x  b->y  c->a,b 即c->a,b,x,y )

2.承上,当’其它两个包’引用的’其它包’同样但版本不同时,’当前包’会根据路径(即几重引用)来选择短的包,若路径相同时,则看哪个包先引用;也可以在’当前包’中直接引用’x3.0’,这样’当前包’引用的就是’x3.0’;

          II(a->x1.0  b->x2.0  c->a,b 即c->a,b,x1.0  因为先引用a)

          III(a->x1.0  b->x2.0  c->a,b  f->c,b 即 f->c,b,x2.0 因为b路径短)

          IV(a->x1.0  b->x2.0  c->a,b  f->c,b,x3.0即 f->c,b,x3.0  因为x3.0路径短)

 

3.当然,也可以在’当前包’中排除其它包的引用

          依赖其它包时,在该依赖标签内使用

1      
3
5 GAV7 …..

 

          这样引入了其它包,但是却把指定的传递引用去掉了,比如在上面例子II中,我们可以在c依赖a时,写入排除x的标签,这样c会依赖X2.0;

 

八、聚合与继承

 

九、使用Nexus2.x搭建私服

          0.私服作用,起到中心私有的中心仓库作用;原本的中心仓库是在网络上的,下载包时需要联网,速度也一般般;而我们在我们自己的服务器上搭建私服后,该私有仓库就在局域网内,方便共享且速度快;

 

          1.步骤:

                   (1)下载nexus压缩包nexus-2.14.4-03-bundle.zip,并解压到某一目录下;

                   (2)将该nexus文件包的bin路径添加到path环境变量中;

                   (3)在nexus文件包/bin/jsw/conf/ 下的wrapper.conf文件,修改javaJDK的映射路径,如下图:

 

                   (4)使用管理员身份打开命令行窗口,使用 nexus install 将nexus安装到windows服务中去,在使用 nexus start 开启私有仓库;

                   (5)在浏览器 输入   打开私有仓库管理界面;

 

十、Nexus私服本地相应配置及使用

0.相关配置:

 

1.获取代理仓库的索引,有索引方便我们查找;在该代理仓库设置Download Remote Indexes为true,nexus就会去下载该仓库的索引,在nexus管理界面的Scheduled Tashs中可以看到下载任务;当然也可以直接把索引文件发到Nexus\sonatype-work\nexus\indexer相应的文件夹中;

 

2.从eclipse发布到远程仓库(私服)

          (1)首先要发布的远程仓库得允许我们发布进去,即在nexus中,仓库设置Deployment Policy为Allow Redeploy;

          (2)在项目pom文件中配置发布管理器,使用<distributionManagement>标签,

                   若项目为snapshots版本,则标签内写<snapshotRepository>及相关配置

                   若项目为release版本,则标签内写<repository>及相关配置

                   相关配置指id(随意) name(随意) url(指定要发布到远程仓库)

          (3)发布到远程仓库一般得有权限,即相关账号密码;权限配置在settting.xml中<servers>标签中写一个或多个<server>来配置:

                   <server>

                             <id>与pom发布管理器中的远程仓库标签ID相对应</id>

                             <username>用户名</username>

                             <password>密码</password>

                   </server>

          (4)使用deploy命令发布;

 

3.私服中新建仓库,有时候我们有些项目开发需要与其它仓库独立开来,方便管理;于是我们可以新建一个仓库,增加相应的权限、角色、用户,来管理仓库;

          (1)在Nexus管理界面中新建本地仓库,注意要允许上传、对应的相关版本;

          (2)在Nexus管理界面侧边的Privileges中增加权限;

          (3)在Nexus管理界面侧边的Relos中增加一个角色,给该角色添加相应权限;

          (4) 在Nexus管理界面侧边的Users增加一个用户(该用户就是我们发布项目时所用的账号密码),并赋予该用户相应角色;

          (5)像上文一样配置setting中的server,pom中的distributionManagement;

 

十一、Maven插件的使用

  1. 在maven使用命令时,是以 插件名:目标 的方式运行的;像compile其实是compiler:compile,只不过compiler有默认前缀为compile,只输入compile就达到了compiler:compile的效果;
  2. 使用一个插件时,需要先在项目的pom中配置(当然,基本install、clean、package…是默认有的),在<build><plugins><plugin>…里写上插件的GAV;
  3. 还可以在plugin标签里加上<excutions><excution><phase>命令 <goals><goal>目标

该配置意思为,在指定的命令运行后,就运行该插件的指定目标;

   4.当然也可以在父pom中使用<build><pluginManagement><plugins><plugin>GAV中配置一个插件管理器,然后在子pom中继承它,如同依赖包的继承;

   5.更多插件及插件使用方法请往官网查阅http://maven.apache.org/plugins/

 

转载于:https://www.cnblogs.com/Drajun/p/8678454.html

你可能感兴趣的文章
分页查询
查看>>
安卓网络编程
查看>>
我的个人博客地址
查看>>
php页面防止重复提交
查看>>
Perl DBI模块的例子
查看>>
python中str和repr区别
查看>>
升级win10后无法使用桥接网络解决方法
查看>>
如何进行跨网段的远程唤醒
查看>>
数据挖掘-同比与环比
查看>>
nginx+php详解
查看>>
怎样取php一个字符串中的某个字符
查看>>
我的友情链接
查看>>
RedHat6 管理应用服务【11】
查看>>
stm32F10x复习-1
查看>>
redis的学习使用(ubuntu系统下)
查看>>
20135226黄坤信息安全系统设计基础期末总结
查看>>
轻松快捷创建VSFTP虚拟用户
查看>>
[转]Javascript原型继承
查看>>
[转] vue异步处理错误
查看>>
CSS 3D动画概述菜鸟级解读之一
查看>>