前言:在微服搭建过程中,需要将公共服务提供给其它服务使用,此时需要将公共服务引入其它微服中,而我们项目开发使用的是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