Android的Nexus搭建Maven私有仓库

2024-08-24 07:48

本文主要是介绍Android的Nexus搭建Maven私有仓库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

我们平时在开发的时候总会compile一些远程仓库的框架来使用,但不可避免的是有些公司是内网,或是断网了,这就造成了依赖失败,亦或是自己开发了一个很牛的组件,希望同步给小伙伴一块耍耍,但是网络环境不允许,总不能拿个U盘拷贝过去吧,被别人听到程序员是这么协作的,估计会笑掉大牙。
Nexus这个私服正好解决了这个问题,他的思路是本地与远程之间嫁接一层本地的服务器,对于公司内部团队协作开发的,我们可以将自己的组件上传到私服上,同一个局域网下,供小伙伴们依赖,避免了直接与远程仓库对接。

所以,这一次就来教大家如果搭建一个属于自己的本地仓库,然后通过gradle将自己的library上传到自己的仓库,供小伙伴们使用

环境搭建

  • 下载链接:https://www.sonatype.com/download-oss-sonatype

  • 我们选择2.X版本的,下载红线指向的zip包

  • 解压看下路径

    如果是win系统的话,可以点击bin目录下面的jsw目录,选择自己对应的平台,然后点击start-nexus.bat批处理文件就可以运行起本地的私服,我当前的系统环境mac,只需要在Terminal下cd到bin目录下面,通过命令“./nexus start” 就可以开启私服,当然,与之对应的关闭私服命令是“./nexus stop”

  • 在浏览器中是输入http://localhost:8081/nexus/,点击右上角的log in进行登录,默认的用户名是admin,密码是admin123,

  • 第1处,点击左边的菜单栏的Repositories,可以查看默认的几个仓库

    nexus的仓库Type分为以下四种:
    - group: 仓库组
    - hosted:宿主
    - proxy:代理
    - virtual:虚拟

    第3处的链接就是我们仓库的地址,我们后面会根据这个地址,将library上传到该地址的仓库中去

    接下来,我们创建一个自己仓库,点击第2处”Add”选择”Hosted Repository”,在新建的面板输入ID和Name,Deployment Policy一定要选择Allow Redeploy,红色箭头那个部分,部署策略设置为允许重新部署,因为我们的库肯定会频繁修改和提交,点击save就可以保存

    在仓库列表的中就会出现codelang仓库,我们点击看一下,当前仓库是没有什么文件的

上传文件到仓库

上传到仓库有两种方式,一种是手动方式,一种是通过gradle上传的方式,我们先来看看手动方式

手动方式:

我们点击codelang仓库,在仓库详情的tab中,选择Artifact Upload一栏

  • 第1处,我们选择AGV Parameters来定义我们的资源
  • 第2处,设置组Group,何为Group呢?比如,我们依赖Retrofit框架 compile ‘com.squareup.retrofit2:retrofit:2.1.0’ ,那么”com.squareup.retrofit2”就是组,我们在依赖的时候会用到它
  • 第3处,设置Artifact,Artifact和第二处的Group一样,两个冒号中间的”retrofit”就是Artifact,一般,我们用它来定义库的名称
  • 第4处,设置Version版本号,和第二处的例子”2.1.0”一样
  • 第5处,设置包的类型,就是我们依赖的库是什么类型的
  • 第6处,选择我们上传的文件

  • 第7处,将这个库添加到待上传区域,这个地方可以多次选择添加文件,我们将支付宝jar和微信jar一同上传,一般有支付类的app都会有他们俩存在,所以,我们将他两捆绑在一起,以后就只需依赖一个文件就可以了

  • 第8处,我们点击”Upload Artifact”进行上传到仓库

上传成功后,我们点击仓库列表codelang仓库后面的链接,你就会看见我们刚刚定义的库,我们一直点下去看看

对于java web开发,通过pom来依赖Maven库的,我们可以通过仓库详情页的Browser Index 一栏来查看

gradle上传

经过上面的一番手动上传,我们应该对上传到仓库有了一定的了解。接下来,我们用gradle的方式,将我们的library库上传到仓库,供我们的小伙伴们集成.(在组件化开发模式下,我们一般都要将业务组件打包成aar文件上传到仓库,供空壳app集成)

1、新建一个Module,选择Android Library,取名叫baseLib,用来存放一些基类

2、第1处,打开项目的gradle.properties文件,第二处,配置上传的参数,供gradle读取

看到这些配置很熟悉吧,和手动上传传递的参数一样

3、接下来,我们打开baseLib的build.gradle文件,配置一下上传到maven的代码,然后gradle运行一下

 dependencies {...}apply plugin: 'maven'uploadArchives {configuration = configurations.archivesrepositories {mavenDeployer {repository(url: MAVEN_URL) {authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)}pom.project {groupId GROUPartifactId ARTIFACTversion VERSIONpackaging TYPEdescription DESCRIPTION}}}}artifacts {archives file('baselib.aar')}

4、我们在baseLib里面写个BaseActivity基类

public  abstract  class  BaseActivity  extends  Activity {private Toast mToast;@Overrideprotected  void  onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(getLayoutId());mToast = Toast.makeText(this, "", Toast.LENGTH_SHORT);mToast.setGravity(Gravity.CENTER, 0, 0);initView();}public  void  showToast(String str) {mToast.setText(str);mToast.show();}/*** 布局id** @return int*/protected  abstract int  getLayoutId();/*** 初始化view*/protected  abstract void  initView();
}

5、点击build菜单栏下面的ReBuild Project生成aar文件,项目默认是不会生成aar文件的
将项目切换到Project模式下面,就可以看到生成的aar文件

6、点击项目最右边的gradle侧边栏,展开baselib,打开upload,双击运行uploadArchives进行上传,下面没有报错,那就说明上传成功

7、打开远程仓库看看我们的arr文件,和我们手动上传的想效果一样,完美

使用

现在,我们开始使用它吧

我们随便新建一个项目,然后打开项目的build.gradle文件,输入maven的地址,也就是我们codelang仓库的地址

allprojects {repositories {jcenter()maven{ url 'http://localhost:8081/nexus/content/repositories/codelang'}}
}

然后,我们打开app的build.gradle文件,还记得依赖库的命名方式吗? “Group:Artifact:version”

dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {exclude group: 'com.android.support', module: 'support-annotations'})compile 'com.android.support:appcompat-v7:26.+'compile 'com.android.support.constraint:constraint-layout:1.0.2'testCompile 'junit:junit:4.12'//添加依赖库compile 'com.codelang.baseLib:baseLib:1.0.0'compile 'codelang:pay:1.0.0'
}

gradle编译一下,然后我们在MainActivity使用一下,完美

总结

最近一直在看组件化方面的知识,顺便把仓库给撘一下,虽然是一个人开发,但也要模拟一下多人开发的感觉,万一以后进大公司了咋搞(稍微的意淫一下)。

虽然当前的环境很糟糕,但还是要为以后的离开做好准备

这篇关于Android的Nexus搭建Maven私有仓库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1101875

相关文章

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex

android-opencv-jni

//------------------start opencv--------------------@Override public void onResume(){ super.onResume(); //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是 //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存