
def reposDir = new File(System.properties['user.home'], ".android/manual-offline-m2")
def repos = new ArrayList()
reposDir.eachDir {repos.add(it) }
repos.sort()
allprojects {
buildscript {
repositories {
for (repo in repos) {
maven {
name = "injected_offline${repo.name}"
url = repo.toURI().toURL()
}
}
}
}
repositories {
for (repo in repos) {
maven {
name = "injected_offline${repo.name}"
url = repo.toURI().toURL()
}
}
}
}
保存这个文件。
在内外编译工程时,移除build.gradle文件中所有在线库。
buildscript {
repositories {
// google()
// jcenter()
}
...
}
allprojects {
repositories {
// google()
// jcenter()
}
...
}
也可以在build.gradle文件中设置,如下:
repositories {
maven { url 'D://Users/user2/.m2/repository' }
}
指定离线库位置(上面的路径自己根据实际情况配置)。
在做自动化编译时,可以使用命令进行编译,如:
gradlew.bat clean --offline
gradlew.bat assembleRelease --offline
这样内网的编译环境就初步搭建完毕了。但是编译的时候依然会有很多依赖文件找不到。这就需要在外网根据编译的提示去下载相关依赖包了。下面介绍下如何下载依赖包:
外网下载依赖包:
依赖包一般是放在maven,google和jcenter仓库的,我们在
build.gradle 中配置google(),jcenter(),maven()其实就是让gradle编译时去这几个仓库下载依赖罢了,大部分依赖在maven仓库都能下载到,如果不行就去google或jcenter仓库下载看看。
有时一个依赖包还存在其他的依赖,如果全部去手动下载太过麻烦,可以在外网机器上安装一个maven工具,使用maven工具去下载。
配置可参考:
AndroidStudio使用本地Maven库 - 简书
maven工具配置方法如下:
1.下载Maven
首先我们要先下载Maven,下载好之后配置好环境变量,如下: 变量名:MAVEN_HOME 变量值:D:apache-maven-3.5.2 变量名:Path 变量值:%MAVEN_HOME%bin; cmd中输入mvn –v显示Maven home: D:apache-maven-3.5.2等数值表示配成功2.配置Maven本地仓
打开conf->setting.xml文件,新建本地Maven仓,修改如下:设置代理(这步可以不设置):D:maven_repositorymaven-dependcies
设置远程Maven库(这步可以不设置): MyProxy truehttp username password proxy 8080 repository.mycom.com|*.google.com MyProxy2 truehttps username password proxy 8080 repository.mycom.com|*.google.com
配置完成后。 在D:maven_repositorymaven-dependcies创建文件夹(这个可以调整,只要和maven工具conf->setting.xml中的配置一样即可) 在D:maven_repositorymaven-dependcies文件夹下新建一个pom.xml文件,内容如下: https://maven.google.com/ central
如果需要下载某个依赖包,在dependency下配置好, 然后在该目录下,执行 mvn clean compile 命令,就能下载相对定的资源了。 下载的依赖包就在D:maven_repositorymaven-dependcies文件夹下按照 org/jetbrains/trove4j/ trove4j/ 20160824的目录保存的。将下载的依赖包拷贝到内网,和从google下载离线依赖包放一起即可。 有些依赖库在maven仓库下载不到怎么办? 那么可以尝试去其他两个库下载。例如: 4.0.0 com.companyname.project-group project1.0 org.jetbrains.trove4j trove4j20160824
https://repo.maven.apache.org/maven2jcenter:
https://jcenter.bintray.com/google:需要梯子
https://dl.google.com/dl/android/maven2以上面的库为例,我们可以构造如下的链接,在浏览器去试试看能不能下载pom文件和jar文件: https://dl.google.com/dl/android/maven2/ com/android/tools/build/jetifier/ jetifier-core/ 1.0.0-beta04.pom https://dl.google.com/dl/android/maven2/ com/android/tools/build/jetifier/ jetifier-core/ 1.0.0-beta04.jar 如果下载成功,那么拷贝到内网,放在google依赖包目录,按照 com/android/tools/build/jetifier/ jetifier-core/ 1.0.0-beta04层次放置pom和jar文件即可。 注意:有些依赖包只有pom,没有jar,所以,在下载时,pom下载成功了,但是jar没有下载到也没关系,直接把pom文件放在内网相应目录,重新编译再看报什么错。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)