Android Studio通过Artifactory搭建本地仓库优化编译速度的方法

Android Studio 编译速度慢,一般来说,原因有下面几个。

  • Gradle下载慢
  • 依赖库下载慢
  • 依赖库使用"+"(使用最新的),每次都需要去查找新的(尽量不适用这种方式)

这里,大部分的库,我们可以通过阿里云代理仓库。
但是,如果有我们自己的私有库或者插件的话。肯定不希望放到阿里云上了。

这个时候,我们就需要建立,我们自己的本地仓库,让私有仓库,依赖阿里云的私有仓库。

依赖关系,如下图

这样,既保证了我们私有库的安全性,又让我们的依赖库也享受到了阿里云代理仓库的便利。

通过Artifactory搭建本地仓库可以参考:架构师教程Artifactory破解步骤。这里就不说明了。

下面,我们主要说明的是本地仓库的配置及在项目中的引用。

一,本地仓库的创建

这里又分为2个部分:

依赖本地的库
比如,Gradle的版本,或者自己写的Gradle插件等等

依赖远程的库
比如,OKHttp,Retrofit等等第三方库

创建虚拟组
这样的话,方便我们的引入。不用每个库都引入进来。

1,创建依赖本地的库

点击左侧的Admin→local,进入Local Repositories。

点击右上角的按钮(New)

选择Maven,然后,填写Repository key,我们就起一个android_local(自己定义就好)。

然后,点击Save & Finish,到这里就创建了一个本地的Maven仓库。

然后,我们在Local Repositories下面就看到了,我们创建的本地库。

下面,我们就要把我们下载好的Gradle,放到这个本地仓库。

点击左侧栏第2个按钮,Artifact Repository Browser

选择,我们的android_local的maven库,点击右侧Deploy,把我们的Gradle的zip上传上去就可以了

如下图

上传完成后,我们在左侧的android_local下面,就看到了这个Gradle的zip包

这里,有个东西需要配置一下。仓库默认上传文件大小是100M,我们需要改大一些,不然,上传会失败。

点击左侧的Amin→General Configuration

修改File Upload Max Size (MB) ,这个选项,我们改成400M,点击Save。

如下图,修改完后,再上传我们的Gradle的zip就没有问题了。

到这里,我们建立的本地的仓库就配置完成了

2,依赖远程的库

我们项目除了Gradle以外,开发时会用到很多的第三方库,这个时候,我们还需要配置一个依赖远程的仓库。

根据上面的流程,我们的远程仓库,需要依赖阿里云的代理仓库。这里先创建一个jcenter仓库。

首先,点击左侧的Admin–→Remote

然后,跟本地仓库一样,点击右侧的New按钮

我们填写一个repository key叫aliyun_maven。并填写地址。

填写完成后,点击右下角的Save & Finish。

就创建好了,我们的jcenter仓库。

我们还要创建google的本地仓库,最好再创建一个public的仓库(防止,其他的地方找不到)

创建完成后,我们看下,我们的远程仓库列表

可以看到,我们的3个远程仓库都创建好了。

3,创建虚拟组

上面,我们把Gradle的文件仓库和依赖库依赖的google(),jcenter()仓库,都创建好了。

如果,我们每个都依赖到项目的话,很不方便。首先,需要写很多;其次,就是如果再添加其他仓库的话,我们也需要都次都改动,这个地方。

这里,我们就创建一个虚拟组。这样,我们的项目,只需要依赖一个虚拟组,让虚拟组把上面的仓库都添加进去就可以了。

首先,点击左侧的Admin–→Virtual。

其次,还是点击右上角的New按钮。填写Repository key,把上面的aliyun_jcenter,android_local等等仓库添加进去。

最后,点击Save & Finish

这样,我们的组就创建好了。

最后,看下我们所有创建的仓库。

二,使用本地仓库

上面的本地仓库创建好以后,我们就不用直接依赖google()等仓库了。

修改我们的项目配置。

1, gradle–→wrapper–gradle-wrapper.properties 下的gradle下载地址

#distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
distributionUrl=http\://localhost:8081/artifactory/android_local/gradle-4.10.1-all.zip

这里,我们直接依赖我们的本地仓库的地址。

2, 修改项目下的build.gradle

buildscript {
  repositories {
//    google()
//    jcenter()
    maven{
      url 'http://localhost:8081/artifactory/android_depend/'
    }
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:3.3.1'
  }
}

allprojects {
  repositories {
//    google()
//    jcenter()
    maven{
      url 'http://localhost:8081/artifactory/android_depend/'
    }
  }
}

这里,我们看到我们不在直接依赖jcenter(),google()仓库了。而是依赖,我们自己的本地仓库的那个虚拟组。

这样,以后我们有自己的私有库或者插件的话,就保证了安全性。我们本地仓库依赖了阿里云的代理仓库。也不用担心下载不下来的问题了。

到此这篇关于Android Studio通过Artifactory搭建本地仓库优化编译速度的方法的文章就介绍到这了,更多相关Android Studio Artifactory搭建本地仓库 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Android Studio发布项目到Jcenter仓库步骤(图文)

    前言:Android Studio中把项目的lib库提交到Jcenter仓库中,需要使用到Bintray,Bintray是jCenter的提供商,他支持上传lib到多个平台,jCenter只是众多平台中的一个,形象的说jCenter是位于某地的仓库,Bintray是送货的卡车,你写的库就是货了.  第一部分:在Bintray上注册账号,并创建package. 注册bintray ,注意:注册时尽量使用国外的邮箱,避免接收不到验证码.例如我使用雅虎邮箱. 完成注册之后,登录网站,然后点击maven

  • 解决android studio 3.0 加载项目过慢问题--maven仓库选择

    今天用android studio 3.0打开项目时发现一直在谷歌的maven仓库加载 卡到这不动了,看了下maven仓库的配置发现: buildscript { repositories { jcenter() maven { url 'https://maven.google.com' name 'Google' } google() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0' // NOTE: Do n

  • Android Studio通过Artifactory搭建本地仓库优化编译速度的方法

    Android Studio 编译速度慢,一般来说,原因有下面几个. Gradle下载慢 依赖库下载慢 依赖库使用"+"(使用最新的),每次都需要去查找新的(尽量不适用这种方式) 这里,大部分的库,我们可以通过阿里云代理仓库. 但是,如果有我们自己的私有库或者插件的话.肯定不希望放到阿里云上了. 这个时候,我们就需要建立,我们自己的本地仓库,让私有仓库,依赖阿里云的私有仓库. 依赖关系,如下图 这样,既保证了我们私有库的安全性,又让我们的依赖库也享受到了阿里云代理仓库的便利. 通过Ar

  • Android Studio开发环境搭建教程详解

    对于移动端这块,笔者之前一直都是进行iOS开发的,也从来没用过Java.但是因为进入了Google Android全国大学生移动互联网创新挑战赛(进入官网)的总决赛(笔者"西部计算机教育提升计划"的项目被直接推荐进入决赛),这个比赛要求一定要提交apk程序,所以我不得不赶紧学习一下Android开发了. 下面就对自己学习的过程做一个记录. 一.安装Android Studio 笔者用的计算机配置如下: Mac下安装Android Studio应该更简单一些,只需要下载一个Android

  • Android studio 将字符串写入本地的操作方法

    File 类的操作: 1.首先需要添加相关权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 注意6.0以上需要动态申请: private void checkPermission(){

  • Android studio 项目手动在本地磁盘中删除module后,残留文件夹无法删除的问题解决方法

    Android studio 项目手动在本地磁盘中删除module后,残留文件夹无法删除问题 如标题所述,本人在本地磁盘删除project中的module后(好吧,是我太菜了),仍然残留着一个文件夹,但是又无法右键之后又无法删除,(强迫症得我觉得很难受),每次打开时候还Android studio还报了一个错误,如下: .Unsupported Modules Detected: Compilation is not supported for following modules: testfo

  • Android Studio配合WampServer完成本地Web服务器访问的问题

    前言 初入Android Studio,在访问Web服务器时遇到的一些问题,特写此篇记录一下错误的解决. 一.WampServer服务器 初入Android Studio,在进行Web服务器的访问时要用到本地的Web服务器,通过WampServer实现. 本次使用的是WampServer 2.2版本,下载链接附在下方: 链接: https://pan.baidu.com/s/1STRuXrol0ZXCFkMTpmSOZw 提取码: 5x22 (有32位以及64位两个版本) 二.问题解析 1.图标

  • Android Studio中通过CMake使用NDK并编译自定义库和添加预编译库

    Note:这篇文章是基于Android Studio 3.01版本的,NDK是R16. step1:创建一个包含C++的项目 其他默认就可以了. C++ Standard 指定编译库的环境,其中Toolchain Default使用的是默认的CMake环境:C++ 11也就是C++环境.两种环境都可以编库,至于区别,后续会跟进,当前博文使用的是CMake环境. Exceptions Support 如果选中复选框,则表示当前项目支持C++异常处理,如果支持,在项目Module级别的build.g

  • Android Studio多工程引用同一个library项目配置的解决方法

    在使用Android Studio开发的时候,如遇到多个项目引用同一个library的情况时,会遇到在每个项目中都要有一套library的代码的情况,对于还在开发和维护中的Library需要频繁的修改,这对同步就很麻烦,为了解决这个问题,出现了下面的解决方案. 首先:新建一个类库工程,工程名为AppLibs.Dev. 在该类库中包含一个公共的类库appLibs的Module,Module下面的build.gradle配置如下: /** 声明是Android类库 */ apply plugin:

  • Android Studio 3.6中使用视图绑定替代 findViewById的方法

    从 Android Studio 3.6 开始,视图绑定能够通过生成绑定对象来替代 findViewById,从而可以帮您简化代码.移除 bug,并且从 findViewById 的模版代码中解脱出来. 本文梗概 在 build.gradle 中就可以方便快捷地开启视图绑定且无须额外引入依赖库 视图绑定会为 Module 中的每一个布局文件生成一个绑定对象 (activity_awesome.xml → ActivityAwesomeBinding.java) 布局文件中每一个带有 id 的视图

  • Android Studio中导入JNI生成的.so库的实现方法

    Android Studio中导入JNI生成的.so库的实现方法 由于在原来的ADT的Eclipse环境中,用ndk_build工具生成了相应的各个.so库文件之后,eclipse工具就会自动把这些库导入到apk中.而Android Studio目前为止(0.86版本)还无法做到那么自动,但是我们可以通过以下方式进行. 首先在Android Studio工程的app目录下创建整个jni目录,jni目录里写Android.mk.Application.mk以及各类C/C++和汇编源文件.然后跟原来

  • Android Studio导入Eclipse项目时.so库文件的解决方法

    最近,将一个包含有百度地图SDK的Eclipse工程导入到Android Studio环境下时,运行进入App地图窗口出现了闪退,错误提示:java.lang.UnsatisfiedLinkError: No implementation found for long com.baidu.p--. 这是因为在Android Studio上导入so文件的方式和Eclipse不同. 解决方法有两种: 1.如果是直接在libs目录下创建子目录armeabi放置.so文件(针对Eclipse结构目录),

随机推荐