私服是一个特殊的远程仓库, 它是架设在局域网内的仓库服务. 私服代理广域网上的远程仓库, 供局域网内的 Maven 用户使用. 当 Maven 需要下载构建的使用, 它先从私服请求, 如果私服上没有的话, 则从外部的远程仓库下载, 然后缓存在私服上, 再为 Maven 的下载请求提供服务.
在 maven 中, 配置 setting.xml, 之后通过 mvn deploy 命令可以将包传入私服
有些第三方 jar 包, 我们需要一般通过新建仓库进行上传
setting.xml 配置
- <servers>
- <server>
- <id>nexus</id>
- <username>gaming</username>
- <password>gaming</password>
- </server>
- </servers>
pom.xml 配置下
<distributionManagement> <repository> <id>nexus</id> <name>releases Repository</name> <url>http://192.168.1.222/repository/gaming/</url> </repository> </distributionManagement>
1, 自己 maven 私服更容易维护, 公司开发从 maven 私服迁出 jar 到本地仓库更快
2, 有些公司未开放外网给开发人员
登录 nexus 后台, 选择创建 repository
respository 介绍
proxy: 是远程仓库的代理. 比如说在 nexus 中配置了一个 central repository 的 proxy, 当用户向这个 proxy 请求一个 artifact, 这个 proxy 就会先在本地查找, 如果找不到的话, 就会从远程仓库下载, 然后返回给用户, 相当于起到一个中转的作用;
Hosted: 是宿主仓库, 用户可以把自己的一些构件, deploy 到 hosted 中, 也可以手工上传构件到 hosted 里. 比如说 oracle 的驱动程序, ojdbc6.jar, 在 central repository 是获取不到的, 就需要手工上传到 hosted 里;
Group: 是仓库组, 在 maven 里没有这个概念, 是 nexus 特有的. 目的是将上述多个仓库聚合, 对用户暴露统一的地址, 这样用户就不需要在 pom 中配置多个地址, 只要统一配置 group 的地址就可以了右边那个 Repository Path 可以点击进去, 看到仓库中 artifact 列表. 不过要注意浏览器缓存.
选中 maven2(hosted)
自定义仓库名, 其余使用默认
之后就上传成功, 这是在后台上传
也可以通过命令上传
mvn deploy:deploy-file -DgroupId.NET.sf -DartifactId=JSON-lib -Dversion=2.4 -Dpackaging=jar -Dfile=E:/JSON-lib-2.4.jar -Durl=http://192.168.1.222/nexus/repository/releases/ -DrepositoryId=releases
参数说明
mvn deploy:deploy-file
-DgroupId=xxxxxx 就相当于 pom 中的 groupId
-DartifactId=xxxxxx 就相当于 pom 中的 artifactId
-Dversion=xxxxxx 就相当于 pom 中的版本号 version
-Dpackaging=xxxxxx 就相当于 pom 中打包方式
-Dfile=xxxxxx 本地环境
-Durl=xxxxxx 上传的 url
-DrepositoryId=xxxxxx 对应的是 setting.xml 里边的 id
下载, 需要修改 maven 的 setting.xml
设置 repository
之后 reimport 即可.
来源: https://www.cnblogs.com/chywx/p/11227151.html