【发布时间】:2018-04-19 07:46:57
【问题描述】:
我有一个包含三个模块的 Gradle 项目,每个模块都嵌套依赖于下一个:
android app module, which depends on...
android lib module, which depends on ...
java lib module (called core)
在我的 lib 模块中,我正在尝试创建一个自定义任务(生成 javadocs,但这可能不相关)
库/build.gradle:
apply plugin: 'com.android.library'
android {
...
}
android.libraryVariants.all { variant ->
task("${variant.name}Docs", type: Javadoc) {
failOnError true
source = variant.javaCompiler.source
classpath = files(((Object) android.bootClasspath.join(File.pathSeparator)))
classpath += files(variant.javaCompiler.classpath.files) // THIS LINE IS CAUSING ERROR
}
}
dependencies {
implementation project(':core')
...
}
问题是,当我运行任何 Gradle 任务(甚至 Gradle clean)时,我收到一个关于找不到 core.jar 的错误
org.gradle.api.ProjectConfigurationException:出现问题 配置项目':library'。
原因: org.gradle.api.artifacts.transform.ArtifactTransformException:失败 转换文件'core.jar'以匹配属性 {artifactType=android-classes} 使用转换 JarTransform
原因:org.gradle.api.InvalidUserDataException:转换输出 文件 ******/core/build/libs/core.jar 不存在。
我猜这是因为 Gradle 在配置阶段正在寻找库的类路径(包括 core.jar)所需的所有文件。但为什么呢?
为什么 gradle 不只在执行期间解决依赖关系? (即为什么我会在 每个 gradle 任务中看到这个错误?)
如何告诉 gradle 在执行此自定义任务之前构建 core.jar?
【问题讨论】:
标签: java android gradle jar dependencies