美容院门户网站开发,wordpress支付宝收款,wordpress散开式,昆明网站建设ynmdwlJava全能学习面试指南#xff1a;https://javaxiaobear.cn
1. Maven私服简介
①私服简介
Maven 私服是一种特殊的Maven远程仓库#xff0c;它是架设在局域网内的仓库服务#xff0c;用来代理位于外部的远程仓库#xff08;中央仓库、其他远程公共仓库#xff09;。 当然…Java全能学习面试指南https://javaxiaobear.cn
1. Maven私服简介
①私服简介
Maven 私服是一种特殊的Maven远程仓库它是架设在局域网内的仓库服务用来代理位于外部的远程仓库中央仓库、其他远程公共仓库。 当然也并不是说私服只能建立在局域网也有很多公司会直接把私服部署到公网具体还是得看公司业务的性质是否是保密的等等因为局域网的话只能在公司用部署到公网的话员工在家里也可以办公使用。 建立了 Maven 私服后当局域网内的用户需要某个构件时会按照如下顺序进行请求和下载。
请求本地仓库若本地仓库不存在所需构件则跳转到第 2 步 请求 Maven 私服将所需构件下载到本地仓库若私服中不存在所需构件则跳转到第 3 步。 请求外部的远程仓库将所需构件下载并缓存到 Maven 私服若外部远程仓库不存在所需构件则 Maven 直接报错。
此外一些无法从外部仓库下载到的构件也能从本地上传到私服供其他人使用。 ②Maven私服的优势 节省外网带宽 消除对外部远程仓库的大量重复请求会消耗很大量的带宽降低外网带宽压力。 下载速度更快 Maven私服位于局域网内从私服下载构建更快更稳定。 便于部署第三方构件 有些构件无法从任何一个远程仓库中获得如公司或组织内部的私有构件、Oracle的JDBC驱动等建立私服之后就可以将这些构件部署到私服中供内部Maven项目使用。 提高项目的稳定性增强对项目的控制 如果不建立私服那么Maven项目的构件就高度依赖外部的远程仓库若外部网络不稳定则项目的构建过程也会变得不稳定。建立私服后即使外部网络状况不佳甚至中断只要私服中已经缓存了所需的构件Maven也能够正常运行。私服软件如Nexus提供了很多控制功能如权限管理、RELEASE/SNAPSHOT版本控制等可以对仓库进行一些更加高级的控制。 降低中央仓库得负荷压力 由于私服会缓存中央仓库得构件避免了很多对中央仓库的重复下载降低了中央仓库的负荷。
③常见的Maven私服产品
Apache的ArchivaJFrog的ArtifactorySonatype的Nexus[ˈneksəs]当前最流行、使用最广泛
2. Nexus下载安装
下载地址https://help.sonatype.com/repomanager3/product-information/download
解压以管理员身份打开CMD进入bin目录下执行./nexus /run命令启动
访问 Nexus 首页
首页地址http://localhost:8081/8081为默认端口号 3. 初始设置 这里参考提示
用户名admin密码查看 E:\Server\nexus-3.61.0-02-win64\sonatype-work\nexus3\admin.password 文件 继续执行初始化 匿名登录启用还是禁用由于启用匿名登录后后续操作比较简单这里我们演示禁用匿名登录的操作 初始化完毕 4. Nexus上的各种仓库 仓库类型说明proxy某个远程仓库的代理group存放通过 Nexus 获取的第三方 jar 包hosted存放本团队其他开发人员部署到 Nexus 的 jar 包
仓库名称说明maven-centralNexus 对 Maven 中央仓库的代理maven-publicNexus 默认创建供开发人员下载使用的组仓库maven-releasesNexus 默认创建供开发人员部署自己 jar 包的宿主仓库 要求 releases 版本maven-snapshotsNexus 默认创建供开发人员部署自己 jar 包的宿主仓库 要求 snapshots 版本
初始状态下这几个仓库都没有内容 5. 通过 Nexus 下载 jar 包
修改本地maven的核心配置文件settings.xml设置新的本地仓库地址
!-- 配置一个新的 Maven 本地仓库 --
localRepositoryD:/maven-repository-new/localRepository把我们原来配置阿里云仓库地址的 mirror 标签改成下面这样
mirroridnexus-mine/idmirrorOfcentral/mirrorOfnameNexus mine/nameurlhttp://localhost:8081/repository/maven-public//url
/mirror这里的 url 标签是这么来的 把上图中看到的地址复制出来即可。如果我们在前面允许了匿名访问到这里就够了。但如果我们禁用了匿名访问那么接下来我们还要继续配置 settings.xml
serveridnexus-mine/idusernameadmin/usernamepasswordatguigu/password
/server这里需要格外注意server 标签内的 id 标签值必须和 mirror 标签中的 id 值一样。
找一个用到框架的 Maven 工程执行命令
mvn clean compile下载过程日志 Downloading from nexus-mine: http://localhost:8081/repository/maven-public/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.pom Downloaded from nexus-mine: http://localhost:8081/repository/maven-public/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.pom (2.6 kB at 110 kB/s) Downloading from nexus-mine: http://localhost:8081/repository/maven-public/net/minidev/json-smart/2.3/json-smart-2.3.pom Downloaded from nexus-mine: http://localhost:8081/repository/maven-public/net/minidev/json-smart/2.3/json-smart-2.3.pom (9.0 kB at 376 kB/s) Downloading from nexus-mine: http://localhost:8081/repository/maven-public/net/minidev/minidev-parent/2.3/minidev-parent-2.3.pom Downloaded from nexus-mine: http://localhost:8081/repository/maven-public/net/minidev/minidev-parent/2.3/minidev-parent-2.3.pom (8.5 kB at 404 kB/s) Downloading from nexus-mine: http://localhost:8081/repository/maven-public/net/minidev/accessors-smart/1.2/accessors-smart-1.2.pom Downloaded from nexus-mine: http://localhost:8081/repository/maven-public/net/minidev/accessors-smart/1.2/accessors-smart-1.2.pom (12 kB at 463 kB/s) 下载后Nexus 服务器上就有了 jar 包 若下载速度太慢可以设置私服中中央仓库的地址为阿里云仓库地址 修改为http://maven.aliyun.com/nexus/content/groups/public/ 6. 将 jar 包部署到 Nexus
maven工程中配置
distributionManagementsnapshotRepositoryidnexus-mine/idnameNexus Snapshot/nameurlhttp://localhost:8081/repository/maven-snapshots//url/snapshotRepository
/distributionManagement注意这里 snapshotRepository 的 id 标签必须和 settings.xml 中指定的 mirror 标签的 id 属性一致。
执行部署命令
mvn deployUploading to nexus-mine: http://localhost:8081/repository/maven-snapshots/com/atguigu/demo/demo07-redis-data-provider/1.0-SNAPSHOT/maven-metadata.xml Uploaded to nexus-mine: http://localhost:8081/repository/maven-snapshots/com/atguigu/demo/demo07-redis-data-provider/1.0-SNAPSHOT/maven-metadata.xml (786 B at 19 kB/s) Uploading to nexus-mine: http://localhost:8081/repository/maven-snapshots/com/atguigu/demo/demo07-redis-data-provider/maven-metadata.xml Uploaded to nexus-mine: http://localhost:8081/repository/maven-snapshots/com/atguigu/demo/demo07-redis-data-provider/maven-metadata.xml (300 B at 6.5 kB/s) [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] demo-imperial-court-ms-show 1.0-SNAPSHOT … SUCCESS [ 1.875 s] [INFO] demo09-base-entity … SUCCESS [ 21.883 s] [INFO] demo10-base-util … SUCCESS [ 0.324 s] [INFO] demo08-base-api … SUCCESS [ 1.171 s] [INFO] demo01-imperial-court-gateway … SUCCESS [ 0.403 s] [INFO] demo02-user-auth-center … SUCCESS [ 2.932 s] [INFO] demo03-emp-manager-center … SUCCESS [ 0.312 s] [INFO] demo04-memorials-manager-center … SUCCESS [ 0.362 s] [INFO] demo05-working-manager-center … SUCCESS [ 0.371 s] [INFO] demo06-mysql-data-provider … SUCCESS [ 6.779 s] [INFO] demo07-redis-data-provider 1.0-SNAPSHOT … SUCCESS [ 0.273 s] 7. 引用别人部署的 jar 包
maven工程中配置
repositoriesrepositoryidnexus-mine/idnamenexus-mine/nameurlhttp://localhost:8081/repository/maven-snapshots//urlsnapshotsenabledtrue/enabled/snapshotsreleasesenabledtrue/enabled/releases/repository
/repositories