Android 在.gradlew命令行生成中未找到dokka?

Android 在.gradlew命令行生成中未找到dokka?,android,gradle,Android,Gradle,我正在尝试构建一个使用以下内容的项目: 当我运行/gradlew--assembly时,我得到: 1:任务失败,出现异常。 ----------- *其中: 生成文件“/path/to/SpandGridLayoutManager/SpandGridLayoutManager/Build.gradle”行:3 *出了什么问题: 评估项目时出现问题:SPANDLM。 >找不到id为“org.jetbrains.dokka android”的插件。 *尝试: 使用--stacktrace选项运行以获

我正在尝试构建一个使用以下内容的项目:

当我运行
/gradlew--assembly
时,我得到:

1:任务失败,出现异常。
-----------
*其中:
生成文件“/path/to/SpandGridLayoutManager/SpandGridLayoutManager/Build.gradle”行:3
*出了什么问题:
评估项目时出现问题:SPANDLM。
>找不到id为“org.jetbrains.dokka android”的插件。
*尝试:
使用--stacktrace选项运行以获取堆栈跟踪。使用--debug选项运行以获得更多日志输出。使用--scan运行以获得完整的洞察力。
这是
span-dGridLayoutManager/span-dGridLayoutManager/build.gradle

apply插件:“com.android.library”
应用插件:“kotlin android”
应用插件:“org.jetbrains.dokka android”
任务dokkaJavadoc(类型:org.jetbrains.dokka.gradle.DokkaAndroidTask){
删除“$rootDir/docs”
outputFormat='html'
outputDirectory=“$rootDir/docs”
外部文档链接{
url=新url(“https://developer.android.com/reference/")
}
includeNonPublic=false
//始终重新创建文档
outputs.upToDateWhen{return false}
}
后评价{
if(project.hasProperty(“javadocJar”)){
tasks.javadocJar.dependsOn dokkaJavadoc
}
}
分机{
bintrayRepo='maven'
bintrayName='SpandGridLayoutManager'
publishedGroupId='com.arasthel'
libraryName='SpandGridLayoutManager'
工件='SpandGridLayoutManager'
libraryDescription='一个布局管理器,它将根据提供的尺寸调整视图大小并重新排序。'
siteUrl=https://github.com/Arasthel/SpannedGridLayoutManager'
gitUrl=https://github.com/Arasthel/SpannedGridLayoutManager.git'
libraryVersion='3.0.2'
developerId='Arasthel'
developerName='Jorge Martín Epsinosa'
developerMailjorgemartinespinosa@gmail.com'
licenseName='MIT'
持牌人https://opensource.org/licenses/MIT'
allLicenses=[“MIT”]
}
安卓{
//编译DK28版
编译DK29版
buildtools版本buildtools\u版本
默认配置{
明斯克版本14
//targetSdkVersion 28
targetSdkVersion 28
版本代码1
版本名称库版本
}
建筑类型{
释放{
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard rules.pro'
}
}
}
tasks.withType(Javadoc){
排除=['***.kt']
}
依赖关系{
实现“com.android.support:recyclerview-v7:$support\u library\u version”
实现“org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_版本”
}
//托盘上传
应用于:“../gradle/tools/bintrayv1.gradle”
应用于:“../gradle/tools/installv1.gradle”
这是
SpandGridLayoutManager/build.gradle

//顶级生成文件,您可以在其中添加所有子项目/模块通用的配置选项。
构建脚本{
//ext.kotlin_version='1.3.10'
ext.kotlin_版本='1.3.61'
ext.support\u library\u版本='28.0.0'
//ext.dokka_版本='0.9.17'
ext.dokka_版本='0.9.18'
ext.buildtools_version='28.0.3'
存储库{
jcenter()
谷歌()
}
依赖关系{
//classpath'com.android.tools.build:gradle:3.2.1'
classpath'com.android.tools.build:gradle:4.0.1'
classpath“org.jetbrains.kotlin:kotlin gradle plugin:$kotlin_version”
classpath“org.jetbrains.dokka:dokka android gradle插件:$dokka_版本”
classpath'com.jfrog.bintray.gradle:gradlebintray插件:1.8.4'
classpath'com.github.dcendents:AndroidMaven gradle插件:2.1'
}
}
所有项目{
存储库{
jcenter()
谷歌()
}
}
任务清理(类型:删除){
删除rootProject.buildDir
}
我需要做些什么才能让它工作

旁白-这看起来像是某个插件,
gradlew
无法从其存储库中在线检索


对于给定的配置,是否有一个命令来查看对
gradlew
可见的所有可用插件?类似于
apt show versions-R-a
的东西会列出Debian中
apt
可用的所有软件包?

嗯,我想在读了一点之后,我已经找到了答案

问题是-我可以用
/gradlew assembly
构建
SpandGridLayoutManager
;但是当我把它作为一个依赖项目构建时,我得到的错误消息会特别出现

事情是这样的:当我构建
SpandGridLayoutManager
独立时,首先调用
SpandGridLayoutManager/build.gradle
,并在
依赖项中定义
类路径
buildscript
中-然后当
SpandGridLayoutManager/SpandGridLayoutManager/build.gradle
时,插件ID根据前面定义的
classpath
s进行解析

当我构建我的项目时,当然首先运行
MyProject/build.gradle
但是它没有相同的
类路径设置;因此,当
MyProject/./span-dGridLayoutManager/span-dGridLayoutManager/build.gradle
作为一个依赖项目被处理时,类路径没有定义,插件查找失败

所以在我的项目中,我基本上必须在
build.gradle
中添加这两行代码-这里显示为差异:

$ git diff build.gradle
diff --git a/build.gradle b/build.gradle
index b730fda..6a696c9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,5 +1,6 @@
 buildscript {
     ext.kotlin_version = "1.4.0"
+    ext.dokka_version = '0.9.18'
     repositories {
         google()
         jcenter()
@@ -10,6 +11,7 @@ buildscript {
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
         classpath "com.android.tools.build:gradle:4.0.1"
         classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4"
+        classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:$dokka_version"
     }
 }
当然,这两行是从原始生成文件span
span dGridLayoutManager/build.gradle
中逐字复制的

好的,很高兴修复了这个问题-但是如果有更好的错误消息(或者,如果
/gradlew--debug
会说类似于
搜索类路径以查找…
并将所有内容转储到它所查找的位置,以及它所发现的内容),情况会更好