欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docker快速搭建私有仓库nexus

程序员文章站 2024-03-13 10:35:39
...

1、创建数据存储路径并授权 

mkdir /home/nexus-data && chown -R 200 /home/nexus-data

2、直接运行docker命令

docker run -d -p 8889:8081 --restart=always  --name nexus -v /home/nexus-data:/nexus-data
 -v /etc/localtime:/etc/localtime sonatype/nexus3

3、nginx域名解析,用域名去访问nexus

server {
	listen 80;
	server_name nexus.zymreal.com;
	access_log /usr/local/nginx/logs/nginx.log combined;
	index index.html index.htm index.php;
	root /opt/nginx/html;
		
	location / {
		proxy_buffering off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_pass http://localhost:8889/;
		client_max_body_size    1000m;  
	}

}

4、登陆nexus.zymreal.com 或者 <ip>:8889/    帐号:admin 密码:admin123

登录后建立nexus-releases(host仓)nexus-snapshots(host仓)nexus-central(Proxy仓)nexus-public(group仓)

nexus-central,代理阿里云*仓库

http://maven.aliyun.com/nexus/content/groups/public/   

nexus-public ,组合nexus-releases(host仓)nexus-snapshots(host仓)nexus-central(Proxy仓)

5、修改nexus-releases仓库配置,允许直接通过命令推送jar包,如下图,将最下方策略改成 allow redeploy 

docker快速搭建私有仓库nexus

6、此时可以推送自己私有的jar包到私有仓库 

打开windows cmd命令 ,推送一个jar包,jar包地址在F盘

mvn deploy:deploy-file -DgroupId=com.stylefeng -DartifactId=guns-generator
 -Dversion=1.0.0 -Dpackaging=jar -Dfile=F:\nexus-pom\guns-generator-1.0.0.jar
 -Durl=http://nexus.zymreal.com/repository/nexus-releases/  -DrepositoryId=nexus

参数解释:

DgroupId、DartifactId、Dversion——表示的是构建的基本坐标,你需要根据你上次的jar包自行改变

Dpackaging——表示的是上传的包的类型,一般为jar,不用改变,根据你的实际情况来改变。

Dfile——表示的是你需要上传的包的地址

Durl——表示的是你要上传到的私有仓库的地址

DrepositoryId——表示你的身份信息。

推送成功后,在nexus页面下Browse  nexus-releases下就能看见刚刚推送的包了

7、最后,修改一下maven的配置文件,引入私有仓库

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">


  <servers>
   <server>
      <id>nexus</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
  </servers>

  <mirrors>

     <mirror>
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://nexus.zymreal.com/repository/nexus-public/</url>
    </mirror>

    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
    
    
    <mirror>
      <id>CN</id>
      <name>OSChina Central</name>
      <!--<url>http://maven.oschina.net/content/groups/public/</url>-->
      <url>https://repo1.maven.org/maven2/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>

  <profiles>
    <profile>
      <id>nexus</id>
      <repositories>
        <repository>
          <id>nexus</id>
          <url>http://nexus</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true></enabled></snapshots>
        </repository>
      </repositories>
      <pluginRepositories>    
		<pluginRepository>    
		  <id>nexus</id>    
          <url>http://nexus</url>  
          <releases><enabled>true</enabled></releases>    
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>    
      </pluginRepositories>    
    </profile>
  </profiles>
  
  <activeProfiles>
    <activeProfile>nexus</activeProfile>
  </activeProfiles>

   <localRepository>G:\ruanjian\apache-maven-3.3.9\repository</localRepository>
  
</settings>

注意 <localRepository> 改成自己存放的仓库地址