如何配置自定义gradle

本文介绍了如何配置自定义的config.gradle,并在项目中应用。针对Gradle找不到tools.jar的问题,提出了解决方案,即在子module中导入JVM并引入tools.jar,同时提供了相关参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 自定义config.gradle

def versions = [:]
versions.support = '1.0.0-beta01'
versions.constraint_layout = '1.1.2'
versions.junit = "4.12"
versions.test_runner = '1.1.0-alpha4'
versions.test_espresso = '3.1.0-alpha4'
versions.android_gradle_plugin = "3.3.1"
versions.android_android = "4.1.1.4"

versions.auto_service = "1.0-rc4"
versions.auto_common = "0.10"

versions.javapoet = "1.10.0"

ext.deps = [:]//空映射
    def deps = [:]
    def support = [:]
    deps.support = support

    def android = [:]
        android.gradle_plugin = "com.android.tools.build:gradle:$versions.android_gradle_plugin"
        android.android = "com.google.android:android:$versions.android_android"
        android.material = "com.google.android.material:material:$versions.support"
    deps.android = android

    def androidx = [:]
        androidx.annotion = "androidx.annotation:annotation:$versions.support"
        androidx.appcompat = "androidx.appcompat:appcompat:$versions.support"
        androidx.constraint_layout = "androidx.constraintlayout:constraintlayout:$versions.constraint_layout"
        androidx.recyclerview = "androidx.recyclerview:recyclerview:$versions.support"

    deps.androidx = androidx

    def test = [:]
    test.junit = "junit:junit:$versions.junit"
    test.runner = "androidx.test:runner:$versions.test_runner"
    test.test_espresso = "androidx.test.espresso:espresso-core:$versions.test_espresso"
    deps.test = test

    def auto = [:]
    auto.service = "com.google.auto.service:auto-service:$versions.auto_service"
    auto.common = "com.google.auto:auto-common:$versions.auto_common"
    deps.auto = auto
    deps.javapoet = "com.squareup:javapoet:$versions.javapoet"
ext.deps = deps

def build_version = [:]
    build_version.min_sdk = 22
    build_version.target_sdk = 28
    build_version.build_tools = versions.support
ext.versions = build_version

 

2. 然后在project的build.gradle添加应用:

buildscript {
    apply from : "config.gradle"
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath deps.android.gradle_plugin
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

3. 在项目的各个子module中build.gradle使用

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation deps.androidx.appcompat
    implementation deps.android.material
    implementation deps.androidx.constraint_layout
    testImplementation deps.test.junit
    androidTestImplementation deps.test.runner
    androidTestImplementation deps.test.test_espresso
}

4. 如何导入import com.sun.tools.javac.code.Symbol;

在对应子module中导入JVM,然后获取tools.jar

import org.gradle.internal.jvm.Jvm

apply plugin: 'java-library'

dependencies {
    implementation project(':inject-annotion')
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation deps.auto.service
    implementation deps.javapoet
    implementation deps.androidx.annotion

    // 添加tools.jar
    compileOnly files(Jvm.current().getToolsJar())

}

查看类似解决方式:https://www.e-learn.cn/content/wangluowenzhang/3674

Gradle does not find tools.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值