首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插件本身不能添加buildscript依赖项,然后应用dokka-android插件

插件本身不能添加buildscript依赖项,然后应用dokka-android插件
EN

Stack Overflow用户
提问于 2018-07-25 06:31:17
回答 2查看 588关注 0票数 1

我们已经创建了GradleMavenPush插件,用于将工件(Gradle Android构件、Gradle Java构件和Gradle Kotlin构件)上传到Maven存储库(JCenter、Maven Central、企业阶段/快照服务器和本地Maven存储库)。

GradleMavenPush插件本身不能添加构建脚本依赖项,然后应用dokka插件:

代码语言:javascript
复制
buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.17"
    }
}

apply plugin: 'org.jetbrains.dokka-android'

没有找到id‘org.jetbras.dokka-android’的插件。

插件本身可以添加buildscript依赖项,然后应用插件吗?的解决方案也不起作用:

代码语言:javascript
复制
apply plugin: 'groovy'

repositories {
    jcenter()
}

dependencies {
    compile gradleApi()
    compile localGroovy()

    compile "org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.17"
}

apply plugin: 'org.jetbrains.dokka-android'

没有找到id‘org.jetbras.dokka-android’的插件。

你能提供什么帮助吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-26 08:50:44

以上解决方案不适用于脚本 gradle插件(只适用于二进制gradle插件)

我实现了自己的gradle插件

对于Android /Kotlin项目:

代码语言:javascript
复制
        task androidDokka(type: Exec) {
            downloadFile('https://jcenter.bintray.com/org/jetbrains/dokka/dokka-fatjar/0.9.17/dokka-fatjar-0.9.17.jar', 'dokka-fatjar.jar')
            def srcDirsNumber = android.sourceSets.main.java.srcDirs.size()
            def classpathNumber = android.getBootClasspath().size()
            def classpath = (classpathNumber > 0) ? android.getBootClasspath()[0] : ''
            def javaAPISpecificationLink = getJavaAPISpecificationLink()
            if (srcDirsNumber > 0) {
                commandLine 'java', '-jar', "$buildDir/download/dokka-fatjar.jar",
                        android.sourceSets.main.java.srcDirs[0],
                        (srcDirsNumber == 2) ? android.sourceSets.main.java.srcDirs[1] : '',
                        (srcDirsNumber == 3) ? android.sourceSets.main.java.srcDirs[2] : '',
                        '-output', "$buildDir/javadoc", '-format', 'javadoc',
                        (classpathNumber > 0) ? '-classpath' : '', (classpathNumber > 0) ? classpath : '',
                        '-links', "https://developer.android.com/reference/^${android.sdkDirectory}/docs/reference/^${javaAPISpecificationLink}"
            } else {
                commandLine 'java', '-jar', "$buildDir/download/dokka-fatjar.jar"
            }
        }

        task androidDokkaJar(type: Jar, dependsOn: androidDokka) {
            classifier = 'javadoc'
            from "$buildDir/javadoc"
        }

对于其他Java/Kotlin项目(不是Android):

代码语言:javascript
复制
        task coreDokka(type: Exec) {
            downloadFile('https://jcenter.bintray.com/org/jetbrains/dokka/dokka-fatjar/0.9.17/dokka-fatjar-0.9.17.jar', 'dokka-fatjar.jar')
            def srcDirsNumber = sourceSets.main.java.srcDirs.size()
            def javaAPISpecificationLink = getJavaAPISpecificationLink()
            if (srcDirsNumber > 0) {
                commandLine 'java', '-jar', "$buildDir/download/dokka-fatjar.jar",
                        sourceSets.main.java.srcDirs[0],
                        (srcDirsNumber == 2) ? sourceSets.main.java.srcDirs[1] : '',
                        (srcDirsNumber == 3) ? sourceSets.main.java.srcDirs[2] : '',
                        '-output', "$buildDir/javadoc", '-format', 'javadoc',
                        '-links', "${javaAPISpecificationLink}"
            } else {
                commandLine 'java', '-jar', "$buildDir/download/dokka-fatjar.jar"
            }
        }

        task dokkaJar(type: Jar, dependsOn: coreDokka) {
            classifier = 'javadoc'
            from "$buildDir/javadoc"
        }
票数 0
EN

Stack Overflow用户

发布于 2018-07-25 12:04:50

您应该将您的近1000行脚本插件代码转换为一个真正的二进制Gradle插件。对于该二进制插件,您可以指定依赖项,只要将插件添加为Gradle构建脚本的classpath依赖项,依赖关系就会得到解决。从那时起,您可以简单地从您的插件中应用另一个插件,因为其他插件的类将提供给您。

您提供的分级讨论链接已经解释了为什么您有某种鸡或鸡蛋问题。第二个代码示例为您的插件项目提供了一个可能的build.gradle文件,它不能直接在脚本插件中使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51512214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档