深圳做手机网站多少钱,专业网站建设兴田德润,环球广贸WordPress,云南建站公司一、Maven 私服简介
1.1 私服简介 Maven 私服是一种特殊的 Maven 远程仓库#xff0c;它是架设在局域网内的仓库服务#xff0c;用来代理位于外部的远程仓库#xff08;中央仓库、其他远程公共仓库#xff09;。 当然也并不是说私服只能建立在局域网#xff0c;也有很多公…一、Maven 私服简介
1.1 私服简介 Maven 私服是一种特殊的 Maven 远程仓库它是架设在局域网内的仓库服务用来代理位于外部的远程仓库中央仓库、其他远程公共仓库。 当然也并不是说私服只能建立在局域网也有很多公司会直接把私服部署到公网具体还是得看公司业务的性质是否是保密的等等因为局域网的话只能在公司用部署到公网的话员工在家里也可以办公使用。 建立了 Maven 私服后当局域网内的用户需要某个构件时会按照如下顺序进行请求和下载。此外一些无法从外部仓库下载到的构件也能从本地上传到私服供其他人使用。 1、请求本地仓库若本地仓库不存在所需构件则跳转到第 2 步。 2、请求 Maven 私服将所需构件下载到本地仓库若私服中不存在所需构件则跳转到第 3 步 3、请求外部的远程仓库将所需构件下载并缓存到 Maven 私服若外部远程仓库不存在所需构件则 Maven 直接报错。
1.2 私服优势 1、节省外网带宽消除对外部远程仓库的大量重复请求会消耗很大量的带宽降低外网带宽压力。 2、下载速度更快 Maven 私服位于局域网内从私服下载构建更快更稳定。 3、便于部署第三方构件有些构件无法从任何一个远程仓库中获得如公司或组织内部的私有构件、Oracle 的 JDBC 驱动等建立私服之后就可以将这些构件部署到私服中供内部 Maven 项目使用。 4、提高项目的稳定性增强对项目的控制。如果不建立私服那么 Maven 项目的构件就高度依赖外部的远程仓库若外部网络不稳定则项目的构建过程也会变得不稳定。建立私服后即使外部网络状况不佳甚至中断只要私服中已经缓存了所需的构件Maven 也能够正常运行。私服软件如Nexus提供了很多控制功能如权限管理、RELEASE/SNAPSHOT 版本控制等可以对仓库进行一些更加高级的控制。 5、降低中央仓库得负荷压力由于私服会缓存中央仓库得构件避免了很多对中央仓库的重复下载降低了中央仓库的负荷。
1.3 私服产品 1、Apache 的 Archiva 2、JFrog 的 Artifactory 3、Sonatype 的 Nexus当前最流行、使用最广泛
二、Nexus 下载安装
2.1 下载 下载地址在这选择适合自己系统的版本如下图 2.2 安装 下载完成后解压进入到 bin 目录后以管理员身份打开 cmd执行 ./nexus /run 命令启动如下图第一次启动有点慢需要一些时间。 当出现以下的图标时就证明启动成功了如下 在浏览器输入http://localhost:8081/ 用来访问首页如下 2.3 初始设置 1、首先点击右上角的 Sign in 如下 2、输入用户名和密码用户名默认为 admin密码在画框的文件里面存储拿出来输入进去如下 3、点击 next输入自己的密码继续点击 Next 4、选择禁止用户匿名登录如下图继续点击 Next 5、点击 Finish 安装成功 2.4 Nexus 上的各种仓库 Nexus 会默认帮我们创建 7 个仓库其中上面以 maven 开头的 4 个是我们使用的下面的那三个是和 asp 和 donet 相关的我们用不上。 接下来我们来介绍下这四个仓库先从类型上介绍如下
仓库类型说明proxy某个远程仓库的代理从远程仓库下载 jar 包group存放通过 Nexus 获取的第三方 jar 包hosted存放本团队其他开发人员部署到 Nexus 的 jar 包 接下来从仓库的功能来介绍下这四个仓库如下
仓库名称说明maven-centralNexus 对 Maven 中央仓库的代理maven-publicNexus 默认创建供开发人员下载使用的组仓库maven-releasesNexus 默认创建供开发人员部署自己 jar 包的宿主仓库 要求 releases 版本maven-snapshotsNexus 默认创建供开发人员部署自己 jar 包的宿主仓库 要求 snapshots 版本 初始状态下这几个仓库都是没有内容的如下图 2.5 通过 Nexus 下载 jar 包 1、修改本地 maven 的核心配置文件 settings.xml设置新的本地仓库地址 localRepositoryE:\repo-new/localRepository 2、把我们原来配置阿里云仓库地址的 mirror 标签改成下面这样
mirroridnexus-mine/idmirrorOfcentral/mirrorOfnameNexus mine/nameurlhttp://localhost:8081/repository/maven-public//url
/mirror 这里面的 url 标签是这么来的如下图 把上图中看到的地址复制出来即可。如果我们在前面允许了匿名访问到这里就够了。但如果我们禁用了匿名访问那么接下来我们还要继续配置 settings.xml如下
serveridnexus-mine/idusernameadmin/usernamepassword123456/password
/server 这里需要注意server 标签内的 id 标签值必须和 mirror 标签中的 id 值一样。 4、打开 idea看看 maven 的配置是否自动切换到新的库了如下图可以看到实体库的路径自动切换过来了证明我们修改的没有问题。 5、随便找一个 maven 工程执行 clean 命令如下图 可以看到我们所依赖的 jar 包是从 nexus-mine 即我们指定的私服来下载的。整个流程是从中央仓库下载到私服然后从私服下载到本地仓库此时打开我们的私服如下图可以看到里面有一些依赖的插件了。 若下载速度太慢可以设置私服中中央仓库的地址为阿里云仓库地址 # 阿里云镜像地址
http://maven.aliyun.com/nexus/content/groups/public/ 6、此时我们再执行一次 package 操作如下图可以看到我们的私服又下载了好多的依赖。 2.6 将 jar 包部署到 Nexus 只需要在 maven 工程的 pom.xml 中配置如下的标签这里的 snapshotRepository 的 id 标签必须和 settings.xml 中指定的 mirror 标签的 id 属性一致。
distributionManagementsnapshotRepositoryidnexus-mine/idnameNexus Snapshot/nameurlhttp://localhost:8081/repository/maven-snapshots//url/snapshotRepository
/distributionManagement 在 idea 中执行部署的命令 deploy如下图 然后就可以在私服上面看见我们的上传的 jar 包了如下图 2.7 引用别人部署的 jar 包 只需要在 maven 工程的 pom.xml 中配置如下的标签
repositoriesrepositoryidnexus-mine/idnamenexus-mine/nameurlhttp://localhost:8081/repository/maven-public//urlsnapshotsenabledtrue/enabled/snapshotsreleasesenabledtrue/enabled/releases/repository
/repositories 执行 package 操作如下图所示