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"
}
}
当然,这两行是从原始生成文件spanspan dGridLayoutManager/build.gradle
中逐字复制的
好的,很高兴修复了这个问题-但是如果有更好的错误消息(或者,如果/gradlew--debug
会说类似于搜索类路径以查找…
并将所有内容转储到它所查找的位置,以及它所发现的内容),情况会更好