docker搭建maven私服

安装 nx3 & 创建仓库

官方文档:https://help.sonatype.com/docs

docker run -d -p 8880:8081 --name nexus \
-e INSTALL4J_ADD_VM_PARAMS="-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m" \
-e NEXUS_CONTEXT=nx \
sonatype/nexus3:3.37.3

进入容器,查看admin密码

docker exec -it aaaa /bin/bash

cat /nexus-data/admin.password

 

3.代码以及 maven配置
maven 配置文件参考

<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
                          https://maven.apache.org/xsd/settings-1.0.0.xsd">
    <localRepository>D:\repository</localRepository>
    <interactiveMode/>
    <usePluginRegistry/>
    <offline/>
    <!-- <pluginGroups/> -->
    <!-- <servers/> -->
    <!--注意密码与私服 登录密码对应-->
    <servers>
        <!--releases snapshots 上传指定 -->
        <server>
            <id>releases</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
        <server>
            <id>snapshots</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
        <!--nexus 下载指定 -->
        <server>
            <id>nexus</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
    </servers>
    <mirrors>
<!--        <mirror>-->
<!--            <id>nexus-local</id>-->
<!--            <mirrorOf>central</mirrorOf>-->
<!--            <name>Nexus local</name>-->
<!--            <url>http://127.0.0.1:8081/repository/maven-public</url>-->
<!--        </mirror>-->

        <mirror>
            <id>nexus-aliyun</id>
            <mirrorOf>central</mirrorOf>
            <name>*</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>
    </mirrors>

    <!--修改nexus ip以及端口-->
    <profiles>
        <profile>
            <id>nexus-hws</id>
            <repositories>
                <repository>
                    <id>nexus</id>
                    <name>crop-nexus</name>
                    <url>http://127.0.0.1:9091/repository/maven-public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>nexus</id>
                    <url>http://127.0.0.1:9091/repository/maven-public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
                <pluginRepository>
                    <id>repo1.maven.org</id>
                    <name>maven repo1 nexus Repository</name>
                    <url>http://repo1.maven.org/maven2</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginRepository>
                <pluginRepository>
                    <id>oss.sonatype.org</id>
                    <name>my nexus Repository</name>
                    <url>https://oss.sonatype.org/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>


    <!-- <activeProfiles/> -->
</settings>



项目中pom文件的配置

<properties>
		<project.scm.host>http://10.254.240.212:9091/repository</project.scm.host>	
	</properties>

<!-- 指定上传位置-->
	<distributionManagement>
		<repository>
			<id>releases</id>
			<name>Nexus Release Repository</name>
			<url>${project.scm.host}/maven-releases/</url>
		</repository>
		<snapshotRepository>
			<id>snapshots</id>
			<name>Nexus Snapshot Repository</name>
			<url>${project.scm.host}/maven-snapshots/</url>
		</snapshotRepository>
	</distributionManagement>

<!-- 指定下载依赖的仓库-->
	<repositories>
		<repository>
			<id>nexus</id>
			<name>crop-nexus</name>
			<url>${project.scm.host}/maven-public/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>



注意 区分releases 和 snapshots 两个仓库,一般来说snapshots版本代表正在开发中的版本,release代表比较稳定的发布版本

snapshots 版本 一般以 SNAPSHOT 结尾,可以重复更新。

releases 版本更新到私服之后,不允许被更改

distributionManagement 将本地jar 上传到远程仓库

repositories 从远程仓库拉取代码到本地

本地的一些maven依赖 也可以以下图方式指定:

pom文件指定本地仓库

<repositories>
   <repository>
      <id>core</id>
      <url>file://${pom.basedir}\..\doc\lib\</url>
   </repository>
</repositories>



综上我们就可以很快的完成maven私服配置 并且使用起来啦

 

posted @   fhaain  阅读(125)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示