gpt4 book ai didi

java - 如何在使用 gradle 的编译阶段添加依赖 jar 文件?

转载 作者:行者123 更新时间:2023-12-03 06:17:05 25 4
gpt4 key购买 nike

我建立我的Android使用 Gradle 的应用程序.

依赖jar文件在编译阶段被检索,这些jar文件的路径是动态的(因为路径中有内部版本号,例如/home/user1/workspace/myapp/libs/privatejar/build-1019/a.jar )。

我的 gradle 配置文件看起来像这样。

apply plugin: 'android'

android {
compileSdkVersion 19
buildToolsVersion "19.1.0"

applicationVariants.all { variant ->
variant.javaCompile.dependsOn('GetJarUsingCompanyPrivateProtocol')
}
}

dependencies {
compile files('local/path/of/company/private/jar')
}

task GetJarUsingCompanyPrivateProtocol {
// This command will retrieve the jar
// into folder "local/path/of/company/private/jar"
commandLine 'get_jar_command'
}

因为第一次执行 gradle compile 命令之前 jar 文件不存在,所以会一直报错“Class * can not be found”。
但是,如果我第二次执行 gradle compile ,它将起作用。

所以我在这里有两个问题:
  • 我必须更改 本地/路径/的/公司/私有(private)/jar 每次我的 jar 文件的内部版本号发生变化时
  • 有没有机会让我的 gradle 脚本第一次工作?

  • 我知道我可以执行 get_jar_command 然后触发 gradle构建,但是很烦人,我可以一口气实现吗?

    最佳答案

    我终于自己找到了解决方案。

    Gradle 构建具有三个不同的阶段:

  • 初始化
  • 配置
  • 执行

  • 依赖 block 将在配置阶段执行。所以要在 中使用依赖 jar依赖 block ,必须在初始化阶段或在配置阶段但在 之前下载依赖项 jar依赖 block 执行。

    就我而言,不使用初始化阶段。所以我必须确保在 之前下载依赖jar依赖 堵塞。很简单,调整 block 顺序就可以了。
    apply plugin: 'android'

    android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    applicationVariants.all { variant ->
    variant.javaCompile.dependsOn('GetJarUsingCompanyPrivateProtocol')
    }
    }

    task GetJarUsingCompanyPrivateProtocol {
    // This command will retrieve the jar
    // into folder "local/path/of/company/private/jar"
    commandLine 'get_jar_command'
    }

    dependencies {
    compile files('local/path/of/company/private/jar')
    }

    注意:任务的 doLast 中的逻辑将在执行阶段执行。这就是我使用的原因
    task GetJarUsingCompanyPrivateProtocol {
    commandLine 'get_jar_command'
    }

    两者都不
    task GetJarUsingCompanyPrivateProtocol {
    doLast {
    commandLine 'get_jar_command'
    }
    }

    也不
    task GetJarUsingCompanyPrivateProtocol << {
    commandLine 'get_jar_command'
    }

    关于java - 如何在使用 gradle 的编译阶段添加依赖 jar 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29646525/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com