私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
我们可以使用专门的 Maven 仓库管理软件来搭建私服,比如:Apache Archiva,Artifactory,Sonatype Nexus。这里我们使用 Sonatype Nexus。
Nexus Pro专业版是需要付费的,这里我们下载开源版 Nexus OSS。Nexus 提供两种安装包,一种是包含 Jetty 容器的 bundle 包,另一种是不包含容器的 war 包。https://help.sonatype.com/repomanager2/download
我选择解压到D:\Program Files\develop\nexus-2.14.10-01-bundle,结构目录如下
cmd进入bin目录 D:\Program Files\develop\nexus-2.14.10-01-bundle\nexus-2.14.10-01\bin(为方便启动和退出Nexus,可将bin目录添加到环境变量),
在bin目录执行
nexus install
将Nexus安装为Windows服务。可以通过services.msc命令查看管理window的nexus服务。可将服务启动方式设为手动,以后通过 nexus start 即可启动Nexus ,通过 nexus stop 退出Nexus。为了方便可将服务启动方式设为自动。
# Jetty section
application-port=18081 #修改了端口号
application-host=0.0.0.0
nexus-webapp=${bundleBasedir}/nexus
nexus-webapp-context-path=/nexus
# Nexus section
nexus-work=${bundleBasedir}/../sonatype-work/nexus #保持默认,为nexus存放包的地方
runtime=${bundleBasedir}/nexus/WEB-INF
# orientdb buffer size in megabytes
storage.diskCache.bufferSize=4096
nexus start
打开浏览器,访问:http://localhost:18081/nexus/:
点击左侧 Repositories 链接,查看 Nexus 内置的仓库:
Nexus 的仓库分为这么几类:
以 Sonatype 为例,添加一个代理仓库,用于代理 Sonatype 的公共远程仓库。点击菜单 Add - Proxy Repository :
填写Repository ID - sonatype;Repository Name - Sonatype Repository;
Remote Storage Location - http://repository.sonatype.org/content/groups/public/ ,save 保存:
将添加的 Sonatype 代理仓库加入 Public Repositories 仓库组。选中 Public Repositories,在 Configuration 选项卡中,将 Sonatype Repository 从右侧 Available Repositories 移到左侧 Ordered Group Repositories,save 保存:
索引下载成功之后,在 Browse Index 选项卡下,可以浏览到所有已被索引的构件信息,包括坐标、格式、Maven 依赖的 xml 代码:
有了索引,我们就可以搜索了:
4.1 下载maven http://maven.apache.org/download.cgi,把下载的zip包解压
4.2 配置M2_HOME的环境变量,然后将该变量添加到Path中
maven配置文件D:\Program Files\develop\apache-maven\apache-maven-3.5.0\conf\settings.xml在servers标签上增加下面内容,以至于部署自己的包到host仓库能自动取到用户名和密码
snapshots1
admin
admin123
releases1
admin
admin123
在mirrors标签增加以下内容,这样就能下载到项目里
central1
*
http://192.168.1.4:18081/nexus/content/groups/public/
com.cmb.com
spring-coret
jar
6.6
1.8
UTF-8
1.8
1.8
junit
junit
4.11
test
org.apache.kafka
kafka-clients
2.0.0
org.apache.kafka
kafka-streams-scala_2.11
2.0.0
org.elasticsearch.client
elasticsearch-rest-client
6.4.2
snapshots1
http://192.168.1.4:18081/nexus/content/repositories/snapshots
releases1
http://192.168.1.4:18081/nexus/content/repositories/releases
说明:
7.1.
|
7.2.java版本1.8和编码为UTF-8
7.3 你项目要依赖的其他包
7.4
8.mvn deploy就能根据项目pom.xml配置的
deploy到nenux下的releases库.
过程:
1.根据pom.xml的设置生成spring-coret-6.6.jar包
2.因为
3.根据
在deploy之前会下载第三方依赖包并编译成jar包
以下面项目pom.xml的一个依赖为例子
maven发现本地D:\Program Files\develop\apache-maven\repository(该目录在idea里的maven设置里配置了)有这个包就不会向nexus要,没有这个包会向根据配置
向nexus要,nexus根据配置看本地D:\Program Files\develop\nexus-2.14.10-01-bundle\sonatype-work\nexus有没有,有的话直接给maven,没有的话向public repositories配置的所有仓库要,远程仓库就会去下载并且把下载的包放在D:\Program Files\develop\nexus-2.14.10-01-bundle\sonatype-work\nexus下,然后返回给maven。
https://www.cnblogs.com/yucy/p/7509561.html
https://www.cnblogs.com/ctxsdhy/p/6105805.html
http://www.cnblogs.com/luotaoyeah/p/3791966.html
http://www.cnblogs.com/hanyinglong/p/5030907.html
https://www.cnblogs.com/demingblog/p/3840174.html