Docker搭建maven私服

本文详细介绍了如何使用Docker快速部署Maven私服,并通过实例演示了如何配置maven项目发布构件到私服及如何在其他微服务中引用这些构件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:在微服搭建过程中,需要将公共服务提供给其它服务使用,此时需要将公共服务引入其它微服中,而我们项目开发使用的是maven来进行构建和管理引入的jar包,所以我选择搭建maven私服来方便其它服务引入公共服务

1、使用docker安装私服

1、拉取镜像
$ docker pull sonatype/nexus3
 
2、运行容器
$ docker run -d -p 8083:8081 --name nexus \ 
$ -v /usr/local/docker/nexus-data:/var/nexus-data \
$ --restart=always sonatype/nexus3
 
3、登录控制页面http://ip:8083

*在运行容器前需要检查下哪些端口已经被占用了:netstat -lnt | grep 8083

*登录控制页需要输入登录密码,但是在挂载的目录下并没有找到放置密码的文件,这是因为我们使用挂载的文件夹覆盖了原有的文件夹,在宿主机上查找文件:find / -name 'admin.password'

2、私服搭建成功,创建仓库和用户

创建仓库,点击Create repository,然后选择maven2(hosted)然后输入仓库名称(test-release)。在version policy中选择这个仓库的类型,这里选择release,在Deployment policy中选择Allow redeploy(这个很重要).

3、修改maven中的setting.xml配置文件

<server>
   <id>myRepository</id>
   <username>test1</username>
   <password>test1</password>
</server>

4、修改maven项目的pom.xml文件

<distributionManagement>
        <repository>
            <!--此名称要和maven/settings.xml中设置的ID一致 -->
            <id>myRepository</id>
            <url>http://ip:port/repository/dinggehuo-release/</url>
        </repository>
    </distributionManagement>

    <build>
        <finalName>dinggehuo-common</finalName>
        <plugins>
            <!--发布代码Jipar插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.7</version>
            </plugin>
            <!--发布源码插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

*发布(mvn deploy )项目到远程仓库:mvn install 会将项目生成的构件安装到本地Maven仓库,mvn deploy 用来将项目生成的构件分发到远程Maven仓库。本地Maven仓库的构件只能供当前用户使用,在分发到远程Maven仓库之后,所有能访问该仓库的用户都能使用你的构件

5、在其它微服中引入

<dependency>
     <groupId>com.sport.sign</groupId>
     <artifactId>dinggehuo-common</artifactId>
     <version>0.0.1-RELEASE</version>
</dependency>

<repositories>
    <id>myRepository</id>
    <url>http://ip:port/repository/dinggehuo-release/</url>
</repository>

关于docker安装reids、tomcat、nginx、rabbitmq等服务请看我的这篇博客:https://blog.csdn.net/qq_41354978/article/details/109815958

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写代码也写生活

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值