用户登录
用户注册

分享至

maven 仓库搭建

  • 作者: 射枪
  • 来源: 51数据库
  • 2020-10-02
步骤:
1、载mavenbinapache官网站载
2、载解压找路径放进 bin位置设环境变量新建环境变量MAVEN_HOME
3、PATH加入mavenbin路径
4、配置完毕Windows命令提示符输入mvn -v测试
5、配置功始Eclipse配置Maven点击Eclipse菜单栏Help->Eclipse Marketplace搜索关键字maven插件Maven Integration for Eclipse 并点击安装即
6、安装完毕点击重启Eclipse
7、重启使Eclipse安装Maven插件同windows安装相同需要让eclipsemaven重新定位点击Window -> Preference -> Maven -> Installation -> Add进行设置
9、设置功即安装完

注意:
由于Maven依赖Java运行环境使用Maven前需要配置Java运行环境载并安装JDK配置JDK环境变量JAVA_HOME否则maven使用



  在以前使用 ant 的时候,我们会建立一个 lib 目录在存放我们的 jar 包,比如项目所依赖的第三方包,每建立一个项目都要建立一个 lib ,不停的做 copy 工作,不仅是对于磁盘的浪费,而且也造成了版本管理上的麻烦。而且我们还需要通过提交到 svn 上来对 lib 进行管理,但是 svn 对于这种二进制文件的管理并不出色。
maven 仓库的初中就是为了解决这个问题,是所有常用的第三方包的集中营。这样所有的 maven 项目就可以从这个仓库中获取所需要的资源, maven 仓库中对 jar 通过 group id, atifact id, version 来管理 ,所以 maven 项目可以很方便的进行依赖管理。你不需要自己来管理这个庞大的资源仓库,当然你可以创建一个公司层面的仓库管理器,这个我在这个章节的后面会介绍。
maven 仓库的两个概念:本地仓库和远程仓库
本地仓库是远程仓库的一个缓冲和子集,当你构建 maven 项目的时候,首先会从本地仓库查找资源,如果没有,那么 maven 会从远程仓库下载到你本地仓库。这样在你下次使用的时候就不需要从远程下载了。如果 你所需要的 jar 包版本在本地仓库没有,而且也不存在于远程仓库, maven 在构建的时候会报错,这种情况可能发生在有些 jar 包的新版本没有在 maven 仓库中及时更新。
maven 缺省的本地仓库地址为 ${user.home}/.m2/repository 。也就是说,一个用户会对应的拥有一个本地仓库。当然你可以通过修改 ${user.home}/.m2/settings.xml 配置这个地址:
xml代码

...
d:/java/repository
...

如果你想让所有的用户使用统一的配置那么你可以修改 maven 主目录下的 setting.xml:
${m2_home}/conf/setting.xml
还可以通过在运行时指定目录,但是并不推荐这么做:
mvn clean install -dmaven.repo.local=/home/juven/myrepo/
当我们创建一个简单的 maven 项目后 ( 只需要在 pom.xml 配置好依赖 ) ,运行 mvn clean install 就可以把项目构建好,不需要我们手工下载任何 jar ,这全靠中央仓库的存在,它会自动从仓库下载。这个仓库的定义是在 ${m2_home}/lib/maven-2.0.10-uber.jar 里面。你可以在里面找到 /org/apache/maven/project/pom-4.0.0.xml 这个文件,在这个文件里面定义了中央仓库的地址:


central
maven repository switchboard
default
http //repo1 maven org/maven2

false



在 pom 中配置远程仓库
下面我介绍下如何在 pom.xml 里面配置远程仓库,我们需要在什么时候配置远程仓库呢?当你连接中央仓库的速度比较慢时,或者你为你的公司搭建了自己的仓库,比如 nexus 仓库管理 ( 后面我会介绍 ) ,又或者你苏需要的 jar 存在另外一个公共仓库,比如我们配置一个国内的镜像地址:

...


maven-net-cn
maven china mirror
http /maven net cn/content/groups/public/

true


false





maven-net-cn
maven china mirror
http //maven net cn/content/groups/public/

true


false



...

这里我们可以看到 ,允许配置多个 repository 和 plugin repository , < releases="">true 告诉 maven 可以从这个仓库下载 releases 版本的构件,而 false 告诉 maven 不要从这个仓库下载 snapshot 版本的构件 , 之所以不让你从这个仓库下载 snapshot 版本,是因为这些版本是不稳定的,但是 snapshot 版本在我们内部项目开发的时候可是作用巨大,后面的问文章我会讨论这个问题。 至于 ,这是配置 maven 从什么地方下载插件构件, maven 的所有行为都是通过插件来完成的,其内部配置与 < repository=""> 类似,这里就不多说了。
尽管 pom.xml 中可以方便的哦配置中央仓库,但是我并不推荐大家这么做,尤其是在大的公司中,因为一个公司会有很多的项目,如果每个项目都这样配置,那么又开始做重复的 copy 工作了,如何解决呢,我们往下走
在 settings.xml 中配置远程仓库
p om.xml 的作用范围是一个项目,一个公司不可能只做一个项目,那么为了避免重复配置,那么我们需要把一些公共信息配置在 setting.xml 中。但是 setting.xml 中并不支持 ,为了解决这个问题我们使用 profile :

...


myprofiel
-->



myprofiel

...

这里通过 元素来激活这个 profile ,这样我们就可以全局的使用这个配置,不再需要为每个 pom 做重复的配置了。
在实际的操作过程中,这里我们最好不要配置远程仓库,最好能够通过 nexus 建立公司或者组织自己的仓库,然后这把把地址指向自己的仓库,后面我会介绍为什么要这么做,怎么做。
配置镜像
如果你想覆盖中央仓库的默认地址,那么这里我们就会使用的镜像了,还在 setting.xml 里面配置:

...


maven-net-cn
maven china mirror
http //maven net cn/content/groups/public/
central


...

这里解释一下 , 表示只为 central 仓库做镜像,如果想为所有的仓库做镜像那么可以改为: *
如果你看到这里,请先不要着急,实际的项目经验告诉我,只是这些还不够,我们需要更快捷和高效的管理:
利用 nexus 来构建企业级 maven 仓库

nex u s 简介
nexus 是 maven 仓库管理器,用来搭建一个本地仓库服务器,这样做的好处是便于管理,节省网络资源,速度快,还有一个非常有用的功能就是可以通过项目的 snapshot 版本管理,来进行模块间的高效依赖开发,下面会一一描述。
虽然你可以通过中央仓库来获取你所需要的 jar 包,但是现实往往是存在很多问题:
网速慢,你可能需要花很长的时间来下载你所需要的 jar
如果你的公司很大,有几百甚至几千人再用 maven ,那么这些人都去通过中央仓库来获取 jar ,那么这是一个很大的资源浪费
如果存在模块之间的依赖开发,你的 snapshot 版本是不能够被你的伙伴很方便的获取。
在实际开发过程中,有些 jar 的版本可能在中央仓库里面不存在,或者更新不及时 ,你是获取不到这个 jar 的。
所有以上问题,通过 nexus 这个日益流行的仓库管理器可以轻松的解决。
这个仓库是本地的,下载的速度是从远程下载不可比的。
可以为你公司所有的 maven 使用者服务,可以进行统一管理
后面我会介绍如何通过 nexus 来进行存在模块依赖的项目的开发
你可以添加自己的第三方包。
软件
前端设计
程序设计
Java相关