精华内容
下载资源
问答
  • Nexus搭建远程Maven仓库

    2021-02-02 22:45:20
    Nexus搭建远程Maven仓库 一、简介 想必对于使用 JVM 平台语言的开发者而言已经对Maven很熟悉了,Maven是当下最流行的 JVM平台语言的构建工具之一。Maven除了是一款优秀的构建工具之外,得益于良好的社区,Maven仓库...

    Nexus搭建远程Maven仓库

    一、简介

    想必对于使用 JVM 平台语言的开发者而言已经对Maven很熟悉了,Maven是当下最流行的 JVM平台语言的构建工具之一。Maven除了是一款优秀的构建工具之外,得益于良好的社区,Maven仓库中也维护着大量优质的开源库,其它的一些构建工具比如AndroidStudio默认使用的Gradle也使用了Maven的仓库。

    Maven仓库分为三种类型:

    • 本地仓库(local):存放在本地设备上,可以理解为本地缓存。

    • 中央仓库(central):由Maven社区维护,地址为https://repo1.maven.org/maven2/,背后出资维护的公司是Sonatype,本文主角——Nexus 也是由这家公司开发的。

    • 远程仓库(remote):即由开发人员自行定制的仓库,也就是俗称的Maven私服,本文将要搭建的个人Maven服务器就属于此种类型。一般互联网公司都会维护一个或多个公司内部的Maven服务器,用于放置公司内部的二方库。

    额外补充介绍一类仓库:

    • 镜像仓库:这实际上不是真正意义上的一种分类,它的存在主要是为了解决由于各种原因而导致的中央仓库访问速度过慢的问题,实际上就是中央仓库的一份拷贝,例如国内的Maven阿里云仓库

    为什么需要搭建远程仓库?

    • 因为中央仓库只能上传开源项目,而我们开发的一些库出于各种原因不需要开源,这时候就只能传到远程仓库中。
    • 互联网公司的二方库出于代码安全的考虑,会在公司内网部署远程Maven仓库,这些仓库只能从内网访问,外网无法访问,保证了代码的安全性。

    二、Nexus为何物

    Nexus是由Sonatype公司开发的Maven仓库管理软件,它为我们提供了非常简单地部署Maven仓库的方式,同时提供了一个后台管理界面,可以通过网页图形化界面清晰地管理仓库中存放的库,并通过管理员账号密码对权限进行了限制。

    除了Nexus以外,还有另外两款流行的Maven仓库管理软件 Archiva 和 Artifactory 。其中Nexus较为主流且功能强大,并且是由Sonatype公司开发的,所以我们选择使用Nexus来搭建Maven远程仓库。

    三、Linux安装Nexus

    笔者使用的系统版本为 Ubuntu18.04,并且是通过Docker进行安装,若读者尚未安装Docker则需要先安装Docker。

    步骤如下:

    1. 先拉取Nexus的Image文件

      docker pull docker.io/sonatype/nexus3
      
    2. 运行Nexus

      docker run -tid -p 8081:8081 --name nexus  docker.io/sonatype/nexus3
      

    Tips:

    • -tid -p 8081:8081将容器的8081端口映射到了设备的8081端口,因为Nexus的默认端口是8081
    • --name nexus指定了容器的name

    完成上述步骤后,Nexus服务应该已经正常启动,若容器的启动过程出现错误,可以使用 docker logs 容器ID 来打印错误日志。

    此时可以访问 http://ip地址:8081/nexus 即可访问Nexus的后台管理界面,考虑到大部分服务器的Linux系统都没有安装桌面程序,所以可以考虑两种方式测试服务是否正常运行:

    • 在服务端,可以通过 curl 命令来看是否能正常返回Html内容 curl 127.0.0.1:8081/nexus/
    • 在客户端,直接从浏览器访问 ip地址:8081/nexus,即可进入Nexus的后台界面。此种方式也是部署完成后的日常维护方式,不需要再登入服务器,直接访问该后台即可管理Maven仓库

    四、Nexus后台管理界面功能简介

    以下以Nexus3.29.2-02版本为例

    4.1 管理员账号登录

    进入管理界面后右上角会有个 “Sign in” 按钮,管理员默认账号为 admin ,初始密码为随机生成的,记录在 /nexus-data/admin.password 文件中,需要从服务器端查看。

    **注意:**老版本的Nexus默认密码为admin123,但在Nexus3.17版本后默认密码已经变更,需要通过上述方式获取

    4.2 仓库类型

    在“Browse”界面,一开始会看到已经默认生成了七个仓库,我们只关注其中的四个 “maven” 前缀的仓库,其余的类似:

    仓库名 类型
    maven-central proxy
    maven-public group
    maven-release hosted
    maven-snapshots hosted

    对于有开发经验的开发者来说应该比较好理解这几个仓库的用途:

    • maven-central 为中央仓库,它的类型为 “proxy” 也表示了这个仓库为Maven中央仓库的代理,当在其余三个maven仓库搜索不到时,就会从中央仓库缓存至我们的仓库中

    • maven-public 为Nexus特有的仓库类型,准确的来说它并不是一个仓库,它的类型为 “group” ,表示它是几个仓库的集合,默认包含了 “maven-central”、“maven-release” 和 “maven-snapshots” 这三个仓库,当然你也可以在设置界面再添加其它的仓库到此集合中。之所以Nexus要设计这种仓库类型是为了便于开发侧添加远程地址,不需要将各个仓库地址一一添加,只需要添加 group 类型的仓库地址即可。

    • maven-release 和 maven-snapshots 就是用来存放我们开发的库的,按照它们的名称不难推测出分别用于存放release版本和snapshot版本的库。但可以看到它们的类型都为 “hosted”,所以事实上它们的唯一区别只在于是否允许“重复发布”,可以在设置界面中查看到它们的 “Deployment policy” 的设置是不同的。release仓库不允许重复发布,而snashots仓库允许重复发布。

    综上我们可以看到Nexus的仓库分为三种类型:

    • proxy:即代理其它远程的Maven仓库
    • group:几个Maven仓库的集合
    • hosted:用于存放我们上传的库的仓库

    可以根据需要再创建相应类型的仓库。

    4.3 上传release版本的库

    Nexus的后台界面为我们提供了图形化上传库的方式,即 “Upload” 界面,只需要上传相应 jar 包并填写好 Group、Name、Versin等信息即可上传至hosted类型的仓库中

    但Nexus的图形化上传不支持Snapshots版本,要想上传快照版库就需要通过构建工具来部署。

    展开全文
  • mvn deploy:deploy-file -DgroupId=test -DartifactId=test -Dversion=0.0.1 -Dpacckaging=jar -Dfile=test.jar -DrepositoryId=d3-public -Durl=...-Durl 配置为远程maven仓库地址。在maven的settings.xml中配置。 ...

    mvn deploy:deploy-file -DgroupId=test -DartifactId=test -Dversion=0.0.1 -Dpacckaging=jar -Dfile=test.jar -DrepositoryId=d3-public -Durl=http://XXXX/XXXX/

    切换到本地test.jar包路径下cmd运行以上指令。

    -Durl 配置为远程maven仓库地址。在maven的settings.xml中配置。

    展开全文
  • 远程maven仓库也没有对应jar包时,手动install依赖当远程maven仓库也没有对应jar包时,手动install依赖1:手动下载需要的jar包2:CMD执行maven命令3:依赖下载成功 当远程maven仓库也没有对应jar包时,手动install...

    当远程maven仓库也没有对应jar包时,手动install依赖

    例如以下依赖无法从远程仓库下载时

    		<dependency>
                <groupId>com.artofsolving</groupId>
                <artifactId>jodconverter</artifactId>
                <version>2.2.2</version>
        	</dependency>
    

    1:手动下载需要的jar包

    至于要下载什么jar包,自行百度吧。。。。。

    2:CMD执行maven命令

    mvn install:install-file -DgroupId=com.artofsolving -DartifactId=jodconverter -Dversion=2.2.2 -Dpackaging=jar -Dfile=C:\Users\admin\Desktop\JOdConverter-2.2.2\jodconverter-2.2.2\lib\jodconverter-2.2.2.jar
    

    自行替换 DgroupId,DartifactId,Dversion 后面字段,对应你的 dependency的groupId,artifactId,version。
    -Dpackaging=jar -Dfile=(写上你下载的jar包在你本地文件夹的地址,我例子里的地址是C:\Users\admin\Desktop\JOdConverter-2.2.2\jodconverter-2.2.2\lib\jodconverter-2.2.2.jar)
    注意:别把地址最后面你的jar包名字忘记。

    3:依赖下载成功

    在这里插入图片描述当cmd出现上述描述时,本地对应的仓库也就完成了依赖的下载

    展开全文
  • Nexus远程Maven仓库索引下载教程

    千次阅读 2018-04-21 22:38:04
    Nexus远程Maven仓库索引下载教程下载Maven仓库索引有两种方式:第一种:手动下载首先将索引下载到本地,下载地址:nexus-maven-repository-index.zip 解压索引压缩包,将里面内容全部拷贝关闭当前Nexus私服,打开...

    Nexus远程Maven仓库索引下载教程

    下载Maven仓库索引有两种方式:

    第一种:手动下载

    首先将索引下载到本地,下载地址:nexus-maven-repository-index.zip 
    解压索引压缩包,将里面内容全部拷贝

    关闭当前Nexus私服,打开Nexus目录%Nexus_Home%\sonatype-work\nexus\indexer\central-ctx,首先删除当前目录里所有内容,然后粘贴所下载的索引,最后启动Nexus私服,索引生效

    第二种:自动下载

    下载索引的步骤: 
    1. 打开Repositories标签,选中远程仓库并打开Configuration,将Download Romote Location 设置为true; 
    这里写图片描述
    2. 在远程仓库上右键选择Update Index,Nexus会自动建立一条任务计划;一般远程仓库都比较大,构建会比较多,索引文件会很大,像http://repo1.maven.org/maven2/就有几百M,因此需要的时间就比较长。 
    这里写图片描述
    可以进入Scheduled Tasks查看任务的执行情况,当执行完成时,远程仓库的索引就已经建立完毕了。 
    这里写图片描述

    3.这个自动下载过程是一个漫长的等待,等任务消失后说明已经下载成功,这时可以在下面页面中点击center 
    接着点击Browse Index如果已经有了,说明下载完毕。

    展开全文
  • 在了解应用于Android无埋点的Gradle插件解析时,看到将插件上传到远程maven仓库的时候,对项目中的maven相关一些参数不太理解,然后就打算了解一下如何搭建远程maven仓库,接着就有了这篇文章,纯粹是记录搭建过程。...
  • 远程maven仓库的搭建

    千次阅读 2017-10-12 10:52:27
    我们知道,Maven仓库包括本地仓库和远程仓库,而远程仓库又包括中央仓库,私服,Jboss仓库和Java.net仓库等。 私服,即私有的仓库服务器,它不仅可以降低中央仓库负荷,节省外网带宽,还可以加速Maven构建,自己...
  • 配置远程maven仓库

    2017-12-20 21:12:37
    用户配置文件这个一般在\usr.m2\settings.xml或者maven\conf\settings.xml,不过这个文件不一定存在,更改远程仓库就是从这个文件中操作的。在和之间加入下面的代码就可以了。 <id>nexus-aliyun
  • 三、上传到私服(远程maven仓库) 1、配置远程maven地址 pom文件中配置: &amp;amp;lt;distributionManagement&amp;amp;gt; &amp;amp;lt;repository&amp;amp;gt; &amp;amp;lt;id
  • android library打包发布到jitpack.io远程maven仓库中详细教程 本文介绍,如果将自己写的开源代码上传到github.com,然后打包传到jitpack.iomaven仓库,这样别人就可以通过gradle或者maven依赖使用你的开源代码了。 ...
  • 整个demo 项目githubhttps://github.... maven地址https://github.com/lihonghao1017/HotFixAndroidMaven 1,创建一个Androidstudio 项目 注意 apply plugin: 'com.android.library' 不能是a...
  • 怎样在nexus 中 搜索到远程maven仓库中的jar 文件 url: http://www.oschina.net/question/95712_21999     点击Administration菜单下面的Repositories,将 Central的 Download Remote Indexes修改为true。 ...
  • 打开idea,找到File=》Settings,搜索“maven”: 找到Maven Home Directory,复制该地址: 进入该目录,找到conf/settings.xml,使用文本编辑器打开,这里我用的是vs code打开的,找到mirrors标签,添加仓库地址...
  • 这里使用阿里云的镜像地址,速度快,最新的包都有。自带的有时候没有最新版本 <repositories> <repository> <...Maven Aliyun Mirror</name> <url>http://maven.al...
  • 在使用maven开发工程时,模块A可能会依赖模块B的jar包,如果两个模块都是在一个工程里,只需要在模块A的pom文件中加入模块B的依赖信息,模块A就可以加载模块B的jar包。但如果模块A与模块B在不同的工程,甚至是由不同...
  • 本地推送jar包到远程maven仓库

    千次阅读 2019-05-10 19:05:16
    1.windows cmd切换到maven bin目录下: 2.将远程仓库地址、用户名、密码配置到maven conf目录下的settings文件中 ①配置仓库地址 ②配置仓库用户名密码 3.推送jar包到远程仓库: 推动命令: mvn ...
  • 阿里云的远程maven仓库

    千次阅读 2018-07-05 18:39:46
    http://maven.aliyun.com/nexus/content/groups/
  • maven的配置文件setting.xml中添加一下代码: <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>...
  • 创建和生成本地或远程Maven仓库

    千次阅读 2017-07-12 17:55:56
    在我们用普通方法对Libray Module进行打包为 test.jar,然后放到libs中使用的过程中,如果Library Module有远程...为什么一定要通过发布Maven库才能访问Library Module的远程依赖 首先,我们需要了解打包过程。当我们需
  • Android Studio 将github作为远程maven仓库

    千次阅读 2015-10-23 23:05:30
    github是一样很好用的工具,除了能作为开源项目的搜索工具外,还能用来搭建maven仓库,方便远程的使用。为此,我查阅了一些资料也结合了一些博主的博客,一步步试验最后成功搭建出了这样的maven仓库,在这里我将整个...
  • AS中新建module,在module的build.gradle中复制以下代码 在project的build.gradle中添加 buildscript{ repositories{ classpath '...apply plugin: 'maven' apply plugin: 'signing' // 获取仓库url de
  • 在开发过程中, 常常只记得某个构建名字,而不记得其具体...Nexus默认是不下载远程仓库的索引的,如果想在Nexus中搜索远程 仓库中的构建需要先下载远程仓库的索引。如果通过nexus搜不到某个的构件,那说明这个构件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,761
精华内容 2,304
关键字:

远程maven库