文章目录
- 一、在IDEA里gradle配置和使用
- 1. 下载安装gradle
- 2. 配置环境变量
- 3. idea配置
- 4. gradle配置国内镜像仓库
- 5. 问题整理
- 5.1 import项目gradle报错 java.lang.AbstractMethodError
一、在IDEA里gradle配置和使用
1. 下载安装gradle
官网下载https://gradle.org/releases/
解压到 D:\gradle-5.6
2. 配置环境变量
新建系统环境“GRADLE_HOME”,值为D:\gradle-5.6。
找到path变量,后面添加%GRADLE_HOME%\bin;。
3. idea配置
在D盘新建文件.gradle(使用dos命令mkdir .gradle ),做为gradle下载的jar包仓库主目录,默认在C:\Users\Administrator.gradle.
修改存储路径
打开file->setting->Build,Execution,Deployment->Gradle,
在页面中下方的Global Gradle Settings 选择Service directory path 选择自己的路径
Gradle home指定了gradle文件目录
Service directory path指定了gradle工作主目录
注意:offline work 不要勾上,这个的意思是离线模式,勾上之后,他会使用本地仓库已经下载好的jar包,不会到镜像中去下载。如果你所构建的项目中有的jar包本地不存在,那么他会报错。
4. gradle配置国内镜像仓库
选择一:项目级配置(推荐)
找到项目中的如下文件:build.gradle
在项目的根目录下找到如下文件:build.gradle,打开编辑,在下图红色箭头处添加阿里云的镜像。
maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'}
在 apply 上面,添加如下代码:
allprojects {
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
mavenCentral()
}
}
选择二:全局配置(操作系统的当前用户)
在操作系统当前用户的 HOME 目录,找到 .gradle 文件夹,在这个文件夹下面创建一个文本文件 init.gradle,完整的文件路径可能如下:C:\Users<june>.gradle\init.gradle。
注意: 默认的是在C盘用户目录下 user下面的.gradle ,修改之后的就到当前在使用的gradle包的路径下。
在此文件中加入如下代码片段:
allprojects{
repositories {
def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
remove repo
}
}
}
maven {
url ALIYUN_REPOSITORY_URL
url ALIYUN_JCENTER_URL
}
}
}
5. 问题整理
5.1 import项目gradle报错 java.lang.AbstractMethodError
Gradle 5 IntelJ java.lang.AbstractMethodError
参考URL: https://www.jianshu.com/p/f9951d5506fc
问题描述:
Idea导入gradle项目报错,错误信息如下:
java.lang.AbstractMethodError: org.jetbrains.plugins.gradle.tooling.util.ModuleComponentIdentifierImpl.getModuleIdentifier()Lorg/gradle/api/artifacts/ModuleIdentifier;
问题原因:
gradle 5目前对Android Studio和intelliJ都有兼容性问题,目前建议的解决方案是降级到版本4。
解决方案:
方法一:
在intelliJ上的解决方案是:IntelIiJ IDEA -> Preferences -> Build,Execution, Deployment -> Build Tools -> Gradle,勾选`Use gradle ‘wrapper’ task configuration’,重新导入,gradle任务就可以正常执行了。
方法二:
自己重新手动下载特定gradle版本使用。