nexus搭建maven仓库管理

一 前提准备

1 maven环境 3.5+,java环境 1.8+。

##maven环境变量


M2_HOME                                                    ##创建maven环境变量  
F:\Mysoft\maven\apache-maven-3.5.2-bin\apache-maven-3.5.2  ##安装路径 bin文件夹父目录

%M2_HOME%\bin;                                             ##加入path

2 安装好nexus3 window安装nexus(maven私服)

二 实现目标

1 配置maven本地仓库

2 配置远程仓库

名称类型作用
仓库组(group)maven2-group虚拟仓库组,用于集中管理仓库
第三方依赖仓库(3dr)maven2-hosted本地仓库,用于管理公网无资源的第三方jar,例如oracle驱动
稳定发行仓库(releases)maven2-hosted本地仓库,用于管理稳定发行的jar
内测快照仓库(snapshots)maven2-hosted本地仓库,用于管理内测发行的jar
代理中央仓库(proxy)maven2-proxy代理中央仓库,用于指定公网仓库地址,例如指定阿里云maven中央仓库

3 配置使用maven私服,以及发布下载jar

三 架构图

1、结构图

如图:为maven-nexus-proxymaven的交互架构图
      蓝色虚线为使用外网代理私服的路线
      红色虚线为使用内网资源转移下载路线


##外网

maven本地仓库 指定本地位置缓存下载的jar  默认为官方中央仓库 可配置为私服代理(阿里私服)
nexus私服仓库 通过代理仓库下载缓存jar 提供给局域网内各个maven资源
maven本地仓库 可以通过发布jar到nexus私服进行管理 提供给其他用户使用

##内网

maven本地仓库 指定本地位置缓存下载的jar 必须配置私服 否则下载时超时
nexus私服仓库 通过代理仓库下载缓存jar 如果内网有穿透的机子可以使用代理,若无则要通过存储媒介在外网下载jar后 内网上传至nexus私服仓库 提供给局域网内各个maven资源
maven本地仓库 可以通过发布jar到nexus私服进行管理 提供给其他用户使用

2 部署图

##根据开发规范细分私服如上

1、3rd 私服本地库:用于存放三方包,包括oracle驱动,公司外部支持jar
2、releases 私服本地库:用于存放稳定版本的jar 内网环境下可以上传外网下载的jar
3、snapshots 私服本地库:用于存放内测版本的jar 可以设置更新策略为实时
4、proxy  私服代理库:用于存放外网中央仓库地址 内网环境下一般不存在
5、group  私服公共库:将多个库虚拟成一个库 供方便引用和管理

注意:开发上传外网资源可以存在稳定版本release库,则公司内部jar在内网中如同外网jar
      开发正在开发的小版本库可以上传内测snapshot库,一般情况使用svn去管理
      开发使用的公司外部jar,需要上传3rd库,以便其他用户下载
      开发下载插件和依赖jar均使用公共库group即可

 四 配置nexus

1、检测maven环境

mvn -v          ##需要配置 JAVA_HOME,M2_HOME

2、启动nexus并登陆

http://localhost:8082/   ##nexus服务ip:port 账号密码默认 admin admin123

 

如果不修改默认有4个库  1个proxy,1个group,1个release和1个snapshot,3rd在低版本有 nexus3默认没有了 

如果需要使用,需要按实际情况配置,一下可选为*

(1)* 配置仓库 

可点击新建仓库(略)

(2)* 配置proxy

点击maven-central 进入配置

配置外网代理maven仓库,例如 http://maven.aliyun.com/nexus/content/groups/public/ 阿里云

选择缓存文件位置,默认只有一个在nexus安装路径 

(3)配置maven-snapshot和maven-release

启用maven-snapshot与maven-release发布功能 (snapshot修改相同)

(4)*配置maven-public仓库  

可以将现有仓库聚合

3、*配置用户

用户默认为admin,admin123

 

(1)* 新增一个zhangsan

五 配置maven

(如果配置在maven setting中则为全局配置  如果配置为项目pom中则为项目配置)

1、修改maven setting.xml配置

##文件坐标
F:\mysoft\apache-maven-3.5.2-bin\apache-maven-3.5.2\conf\setting.xml

 关键配置


<!--maven 私服管理配置-->
  <servers>
     <server>
        <id>maven-releases</id>
        <!--保持id唯一 用于引用-->
        <username>admin</username>
        <password>admin123</password>
        <!--这个密码就是你设置的密码-->
    </server>
    <server>
        <id>maven-snapshots</id>
        <!--保持id唯一 用于引用-->
        <username>admin</username>
        <password>admin123</password>
        <!--这个密码就是你设置的密码-->
    </server>
  </servers>

详细配置(可省略)

<!--maven本地仓库配置-->
<localRepository>F:\mysoft\apache-maven-3.5.2-bin\maven_repository</localRepository>


<!--maven 私服管理配置-->
  <servers>
     <server>
        <id>maven-releases</id>
        <!--保持id唯一 用于引用-->
        <username>admin</username>
        <password>admin123</password>
        <!--这个密码就是你设置的密码-->
    </server>
    <server>
        <id>maven-snapshots</id>
        <!--保持id唯一 用于引用-->
        <username>admin</username>
        <password>admin123</password>
        <!--这个密码就是你设置的密码-->
    </server>
  </servers>

 
 <!--以下是中央仓库配置 如同使用proxy指定下载点 再无私服公共仓库时直接到中央仓库下载-->
  <mirrors>
     <!--以下是默认配置,原本为注释-->
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
    <!--可以新增 配置私服公共仓库 配置阿里云公共仓库-->
  </mirrors>


 <!--以下是一般不配置 因为项目多个情况下还是使用pom文件配置最佳-->
<!--动态配置参数-->
<profiles>
    <!--各个环境配置-->
    <profile>
      <id>env-test</id>
      <!--省略 仓库分类指定,版本库刷新等,详见pom.xml-->
    </profile>
    <profile>
      <id>env-dev</id>
    </profile>
  </profiles>

<!--激活配置参数-->
  <activeProfiles>
    <activeProfile>env-dev</activeProfile>
  </activeProfiles>

2、修改项目pom.xml文件 (父pom即可)

(1)配置下载使用maven公共库maven-group

     <!--仓库配置 如同maven 配置镜像-->
     <repositories>
			<repository>
				<id>maven-public</id>
				<name>maven-public</name>
				<url>http://localhost:8082/repository/maven-public/</url>
				<releases>
					<enabled>true</enabled>
				</releases>
				<snapshots>
					<enabled>true</enabled>
					<updatePolicy>always</updatePolicy>
					<checksumPolicy>warn</checksumPolicy>
				</snapshots>
			</repository>
		</repositories>
       <!--插件库配置 -->
		<pluginRepositories>
			<pluginRepository>
				<id>mmaven-public</id>
				<name>maven-public</name>
				<url>http://localhost:8082/repository/maven-public/</url>
				<releases>
					<enabled>true</enabled>
				</releases>
				<snapshots>
					<enabled>true</enabled>
					<updatePolicy>always</updatePolicy>
					<checksumPolicy>warn</checksumPolicy>
				</snapshots>
			</pluginRepository>
		</pluginRepositories>

(2)配置发布到maven本地库 maven-releases以及maven-snapshots

       <!--配置仓库管理-->
       <distributionManagement>
            <!--设置发布稳定仓库-->
			<repository>
				<id>maven-releases</id>
                <!--id必须与setting中对应 使用setting配置用户-->
				<name>User Project Release</name>
				<url>http://localhost:8082/repository/maven-releases/</url>
			</repository>
            <!--设置发布的快照库-->
			<snapshotRepository>
				<id>maven-snapshots</id>
                <!--id必须与setting中对应 使用setting配置用户-->
				<name>User Project SNAPSHOTS</name>
				<url>http://localhost:8082/repository/maven-snapshots/</url>
			</snapshotRepository>
		</distributionManagement>

(3)使用profile(可省略)

<profiles>
	<profile>
		<id>env-dev</id>
        <!--命名唯一-->
		<repositories>
			<repository>
				<id>maven-public</id>
				<name>maven-public</name>
				<url>http://localhost:8082/repository/maven-public/</url>
				<releases>
					<enabled>true</enabled>
				</releases>
				<snapshots>
					<enabled>true</enabled>
					<updatePolicy>always</updatePolicy>
					<checksumPolicy>warn</checksumPolicy>
				</snapshots>
			</repository>
		</repositories>
		<pluginRepositories>
			<pluginRepository>
				<id>maven-public</id>
				<name>maven-public</name>
				<url>http://localhost:8082/repository/maven-public/</url>
				<releases>
					<enabled>true</enabled>
				</releases>
				<snapshots>
					<enabled>true</enabled>
					<updatePolicy>always</updatePolicy>
					<checksumPolicy>warn</checksumPolicy>
				</snapshots>
			</pluginRepository>
		</pluginRepositories>
		<distributionManagement>
			<repository>
				<id>maven-releases</id>
				<name>User Project Release</name>
				<url>http://localhost:8082/repository/maven-releases/</url>
			</repository>
			<snapshotRepository>
				<id>maven-snapshots</id>
				<name>User Project SNAPSHOTS</name>
				<url>http://localhost:8082/repository/maven-snapshots/</url>
			</snapshotRepository>
		</distributionManagement>
	</profile>
    <!--以下省略其他profile-->
</profiles>

六 使用(以idea为例)

(1)配置使用maven 

 file--》setting--》maven--》指定安装的maven

(2)使用maven工具

ctrl+shift+A   输入  maven projects  点击则右边侧边栏出现maven project管理工具

1、下载远程仓库文件

2、发布release

##
注意release版本发布  版本号必须不能以snapshot结尾

3、上传第三方文件

语法:
mvn deploy:deploy-file 
-DgroupId=                                <group-id>\包名前缀 com.公司名
-DartifactId=                             <artifact-id>\包项目名  xxx项目
-Dversion=                                <version>\包版本号      v1.0.0.1(纯数字最佳)
-Dpackaging=                              <type-of-packaging>\打包类型  一般为jar
-Dfile=                                   <path-to-file>\需要上传文件的路径   
-DrepositoryId=                           <id-to-map-on-server-section-of-settings.xml>\serverid(setting指定)
-Durl=                                    <url-of-the-repository-to-deploy>

例子:

mvn deploy:deploy-file -DgroupId=com.oracle 
 -DartifactId=jdbc -Dversion=1.0 -Dfile=ojdbc6.jar 
 -DrepositoryId=maven-release -Durl=http://ip:prot/repository/maven-releases/

未完待续。。。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
搭建Maven私服可以使用Sonatype Nexus,它是一个功能强大的仓库管理器,可以帮助我们创建和管理Maven私服。下面是基于Nexus搭建Maven私服的详细步骤: 1. 准备环境:首先,确保你已经安装了Java环境,并且可以正常运行MavenNexus软件。 2. 下载和解压缩Nexus软件:从Sonatype官方网站下载最新版本的Nexus软件,并解压缩到合适的目录中。 3. 启动Nexus:使用命令行窗口进入Nexus软件的目录,然后执行 `./bin/nexus start` 命令来启动Nexus服务器。 4. 访问Nexus控制台:在浏览器中输入 `http://localhost:8081` 访问Nexus控制台,默认用户名和密码都是 `admin`,登录成功后,可以看到Nexus管理界面。 5. 创建Maven仓库:在Nexus控制台中,点击左侧菜单的 `Repositories`,然后点击 `Create repository` 来创建新的Maven仓库。根据需要选择 `Hosted repository` 或者 `Proxy repository`,然后填写相应的配置信息,如仓库名称、URL、布局等。 6. 配置Maven项目:在你的Maven项目的pom.xml文件中添加Nexus私服的配置信息,包括ID、URL等,用来指定将Maven构建输出部署到Nexus仓库中。 7. 部署和使用:使用 `mvn deploy` 命令将项目打包并部署到Nexus私服中,当其他开发人员或者CI/CD服务器需要下载依赖时,只需要修改项目的settings.xml文件,指定Nexus私服的URL和凭据即可。 8. 其他设置:你还可以在Nexus控制台里进行其他设置,比如用户管理、访问控制、仓库代理等。 总结一下,使用Nexus搭建Maven私服非常简单,只需要几个基本的步骤即可完成。通过搭建Maven私服,我们可以有效地管理和共享项目的依赖包,提升团队的开发效率和项目的可维护性。这对于生产环境中的项目非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mars'Ares

请我喝杯咖啡吧

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

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

打赏作者

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

抵扣说明:

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

余额充值