Maven私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的用户使用。当Maven需要下载构件的时候,它从私服请求,如果 私服上不存在该构件,则从外部远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。
docker pull sonatype/nexus3
docker run -d -p 8081:8081 --name nexus -v /root/nexus-data:/var/nexus-data --restart=always sonatype/nexus3
使用docker ps命令查看正在运行的容器,并使用docker attach 容器id命令查看正在运行的容器的日志
docker ps
docker attach 容器id
注意:docker attach [options]命令在使用Ctrl+C退出容器时,还会将容器停止运行,如果希望退出容器时不停止运行则需要加上–sig-proxy这个参数
docker attach --sig-proxy=false 容器id
systemctl disable firewalld
docker ps
docker exec -it 容器id bash
cat /nexus-data/admin.password
<servers>
<server>
<id>honeyid>
<username>honeyusername>
<password>honeypassword>
server>
servers>
<groupId>comgroupId>
<artifactId>maven-projectartifactId>
<version>1.0-RELEASEversion>
<distributionManagement>
<repository>
<id>honeyid>
<url>http://192.168.102.149:8081/repository/honey-release/url>
repository>
distributionManagement>
进入命令窗口,跳转至项目地址,使用mvn deploy命令进行发布
发布成功后前往Maven私服页面查看Jar包是否存在
<groupId>comgroupId>
<artifactId>maven-project-downloadartifactId>
<version>1.0-SNAPSHOTversion>
<dependencies>
<dependency>
<groupId>comgroupId>
<artifactId>maven-projectartifactId>
<version>2.0-RELEASEversion>
dependency>
dependencies>
<repositories>
<repository>
<id>honeyid>
<url>http://192.168.102.149:8081/repository/honey-release/url>
repository>
repositories>
把Maven坐标引入进来时,我们可以发现,本地Maven仓库中已经存在了该Jar包,为了测试是否可以下载Jar包,我们应该把本地Maven仓库中的Jar包删除,重新下载
删除Jar包后,项目已经找不到该Jar包了
package com;
/**
* @ClassName Test
* @Description
* @Author honey-袁小康
* @Date 2021/1/27 23:38
* @Version 1.0
*/
public class Test {
public void test() {
System.out.println("调用方法");
}
}
package com;
/**
* @ClassName CallTest
* @Description
* @Author honey-袁小康
* @Date 2021/1/28 0:09
* @Version 1.0
*/
public class CallTest {
public static void main(String[] args) {
Test test = new Test();
test.test();
}
}
注意:运行CallTest类后,发现控制台输出的中文是乱码的,遇到这个问题首先就可以考虑是不是发布Jar包的编码格式存在问题。
查看发布Jar包时的日志:Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
在发布Jar包的Maven工程中,更改pom.xml文件(添加发布插件,并设置编译格式为UTF-8)
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<configuration>
<encoding>UTF-8encoding>
configuration>
plugin>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-resources-pluginartifactId>
<version>3.0.2version>
<configuration>
<encoding>UTF-8encoding>
configuration>
plugin>
plugins>
build>
使用mvn clean deploy命令重新发布Jar包
mvn clean deploy
Maven私服的搭建到此结束啦~~~
莫找借口失败,只找理由成功。