搭建自己的 Maven 仓库

搭建自己的 Maven 仓库

搭建仓库

这里我们使用 Docker 容器技术。

  • 拉取镜像:docker pull sonatype/nexus3
  • 运行镜像:docker run -d -p 8081:8081 --name nexus sonatype/nexus3
  • 可以通过浏览器查看仓库,地址为:ip:port,用户名为admin,密码保存在admin.password文件里面,可以通过find / -name admin.password命令找到文件路径,然后通过cat path/admin.password来查看密码。

客户端配置

通过 maven 的 settings.xml 文件来配置,添加如下内容。

<mirrors> <mirror> <id>mirror_id</id> <mirrorOf>*</mirrorOf> <name>mirror_name</name> <url>http://123.123.123.123:8081/repository/maven-public/</url> </mirror>

如果要访问仓库中的私有内容,还需添加如下配置(密码或密钥,二选一)。

<servers> <server> <id>mirror_id</id> <privateKey>/path/to/private/key</privateKey> <passphrase>optional; leave empty if not used.</passphrase> </server> <server> <id>mirror_id</id> <username>repouser</username> <password>repopwd</password> </server> </servers

如果需要使用仓库中的snapshot版本的jar包,则还需在 settings.xml 中插入如下内容:

<profiles> <profile> <id>profile_id</id> <repositories> <repository> <id>mirror_id</id> <url>http://123.123.123.123:8081/repository/maven-public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> </profile> </profiles> <activeProfiles> <activeProfile>profile_id</activeProfile> </activeProfiles>

相关问题

SNAPSHOT版本发布之后名称不对?依赖拉取不到?

snapshot版本上传到 maven 仓库之后,在 1.0-SNAPSHOT 文件夹下,默认保存的文件夹名是以时间戳命名的,这是正常的情况。客户端进行拉取snapshot版本包的时候,仓库默认返回最新版,并命名为 {project_name}.1.0-SNAPSHOT。

使用 mvn deploy 编译并发布到 maven 仓库

需要在 pom.xml 文件中做如下配置:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <distributionManagement> <repository> <id>repo</id> <url>http://123.123.132.123:8081/repository/maven-releases/</url> </repository> <snapshotRepository> <id>repo</id> <url>http://123.123.132.123:8081/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement>

如果仓库需要密码才能进行推送,那么上面的 distributionManagement.repository.id 和 distributionManagement.snapshotRepository.id 需要和 settings.xml 文件中的 servers.server.id 对应。


__EOF__

本文作者ZOLMK
本文链接https://www.cnblogs.com/zolmk/p/16678072.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   zolmk  阅读(1100)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示