「运维」Maven仓库-Nexus的配置及Java项目中的使用

createh54周前 (02-17)技术教程25

Maven 作为 Java 项目管理工具,一方面管理Jar包,另外可以通过插件,做整个项目的开发、打包、测试、部署等一系列管理。

Nuexus3不只是做Maven仓库了,同时也能够支持npm、Docker、YUM、Helm等格式数据的存储和发布,并且能够与Jekins、SonaQube和Eclipse等工具进行集成。

仓库配置

安装完成后,就有几个默认的仓库,一般情况够用了。

系统中有三种类型的仓库,不管是Maven,还是npm、Docker都可配置这几类:

  • proxy,代理,用来代理中央仓库的。
  • hosted,本地私有的库了,管理公司或团队内部的包。还会再分为 releases 和 snapshots 两个,前者用于稳定版,后者用于开发测试版。并且一般情况下前者都不请允许同版本号覆盖Jar包的。
  • group,组合,把多个仓库组合起来,方便项目使用。

创建仓库时的重要的参数:

  • 唯一的仓库名。
  • Maven的版本策略有Releases、SNAPSHOT、Mixed,mixed是混合的。
  • Storage,大对象存储(支持S3和本地File类型)。
  • proxy类型仓库要代理的仓库url,如阿里云的仓库地址是:http://maven.aliyun.com/nexus/content/groups/public/。
  • hosted一般默认就足够用了。
  • group类型仓库,只用选择需要组合的成员仓库。
  • 可选的清理策略。

用户权限

安装完成后,默认用户密码是admin/admin123,首次登陆会提示修改密码。

系统中默认的角色和用户都有两种,admin、anonymous,管理员和匿名游客。一般情况可以把匿名访问功能关闭。

仓库的权限有:add:上传权限、browse:浏览权限、delete:删除、edit:编辑、read:读取详细信息。

项目的Maven仓库

配置生效的优先级:

pom.xml >
/home_dir/.m2/settings.xml >
/maven_dir/conf/settings.xml 。

仓库镜像配置规则:

maven有个默认的仓库,ID为central,默认值是
https://repo.maven.apache.org/maven2/。

mirror是镜像,而不是“分库”,无法连接就找下一个,如果没Jar包,则直接报错。

mirror按字母顺序,并非配置先后顺序,注:repositories则是配置的先后顺序的。

mirrorOf=*,就会替代所有仓库。

mirrorOf=central,就会替代默认的中央仓库。

mirrorOf=central 有多个,则按顺序只会获取第一个。

mirrorOf=*,!repo1,则是代理所有,除repo1外。

仓库生效的优先级是:

local_repository >
settings_profile_repositories > pom_profile_repositories > pom_repositories > settings_mirror > central。

当一个 repository 存在 mirror 时,一定使用的是 mirror 配置的地址。

首先配置本地maven的仓库的私服地址,可选在conf或.m2中的settings.xml的mirror、项目的pom.xml配置,还各处都可以配置的profile。

pom.xml中的配置,其中的url是nexus中仓库url。



  
    
      nexus-central
      my central
      http://xxx:8081/repository/maven-public/
      true
      false
    
  
  

  
    
      spring
      
      
    
  

settings.xml的仓库地址,加入镜像结节配置,其中的url是nexus中仓库url。



  nexus-central
  central
  my central
  http://xxx:8081/repository/maven-public/



  
    spring
    
    
  

部署自己的Jar包

首先需要在setting.xml文件加入server,否则没有权限上传jar。


  nexus
  admin
  admin123

再在项目的pom.xml文件中加入distributionManagement。

  
      
    nexus    
    http://xxx:8081/repository/maven-releases/ 
    
    
      
    nexus    
    Nexus Snapshot    
    http://xxx:8081/repository/maven-snapshots/  
   
     
    nexus    
    Nexus Sites   
    dav:http://xxx:8081/repository/maven-snapshots/  
  

上传:项目中mvn deploy即可。如果只有Jar文件则:

mvn deploy:deploy-file \
-DgroupId=xxx.xxx \
-DartifactId=xxx \
-Dversion=0.0.1 \
-Dpackaging=jar \
-Dfile=D:\xxx.jar \
-Durl=http://xxx:8081/repository/nexus/ \
-DrepositoryId=nexus

也可在管理页面上的Upload菜单中进行。

相关文章

Java界使用最广的依赖管理工具:Maven快速上手教程

Maven是Java界使用最广泛的依赖管理工具,几乎所有的Java类库和项目都使用Maven的项目模型。可以说Maven是学习Java必要的一个知识点。那么就让我们来看看如何使用Maven吧。安装Ma...

用Maven进行Java项目的构建和管理

使用Maven进行Java项目的构建和管理,可以分为以下几个详细步骤:1. 安装Maven下载Maven访问Maven官方网站,下载适合你操作系统的Maven版本。解压下载的压缩包到一个合适的目录。配...

Java中Maven详解_java maven在哪

什么是mavenMaven 是一个项目管理工具,它包含了一个项目对象模、型 (POM: Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle)...

解锁高效开发:Maven——Java项目的“瑞士军刀”

一、开篇:Maven——Java 项目的得力助手在 Java 开发的世界里,你是否曾被项目依赖管理搞得焦头烂额?不同版本的类库相互冲突,构建流程复杂繁琐,仿佛一团乱麻,让开发效率大打折扣。别急,今天就...

Java中的依赖管理:Maven与Gradle的比较

在Java开发中,依赖管理是一个非常重要的环节。无论是大型项目还是小型应用程序,我们都需要处理各种库和框架的依赖关系。今天,我将为大家详细介绍两种流行的依赖管理工具:**Maven**和**Gradl...

走进Maven世界_maven central repository

Maven作为一个构建工具,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务的具体实现,自动测试、打包、生成文档和报表;它跨平台,同时提供了中央仓库,只需要在pom.xml中配置下所需的jar...