tir*_*r38 8 java dependencies android jar gradle
我有一个包含三个模块的Gradle项目,每个模块都对下一个模块具有嵌套依赖性:
android app module, which depends on...
android lib module, which depends on ...
java lib module (called core)
Run Code Online (Sandbox Code Playgroud)
在我的lib模块中,我正在尝试创建一个自定义任务(生成javadoc,但这可能不相关)
库/的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')
...
}
Run Code Online (Sandbox Code Playgroud)
问题是当我运行任何Gradle任务(甚至是Gradle clean)时,我收到一个关于找不到core.jar的错误
org.gradle.api.ProjectConfigurationException:配置项目':library'时出现问题.
引起:org.gradle.api.artifacts.transform.ArtifactTransformException:无法使用转换JarTransform转换文件'core.jar'以匹配属性{artifactType = android-classes}
引起:org.gradle.api.InvalidUserDataException:转换输出文件******/core/build/libs/core.jar不存在.
我猜这种情况正在发生,因为Gradle在配置阶段正在寻找所需的所有文件库的类路径(包括core.jar).但为什么?
为什么gradle只在执行期间解析依赖关系?(即为什么我会为每个 gradle任务看到这个错误?)
在执行此自定义任务之前,如何告诉gradle构建core.jar ?
我真的不知道为什么这有效,但只需.files从问题行中删除就可以解决问题:
classpath += files(variant.javaCompiler.classpath)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4386 次 |
| 最近记录: |