1
我有一個發佈配置塊,看起來像這樣在我的build.gradle文件搖籃的Maven插件發佈配置有參考動態創建任務的gradle
publishing {
publications {
maven(MavenPublication) {
groupId "groupId"
artifactId 'artifactId'
version "4.0"
artifact "$buildDir/outputs/aar/artifact-release.aar"
artifact releaseJavadocsJar
// Generate pom file so that the artifact dependencies can be fetched automatically.
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
configurations.compile.allDependencies.each { dependency ->
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', dependency.group)
dependencyNode.appendNode('artifactId', dependency.name)
dependencyNode.appendNode('version', dependency.version)
}
}
}
}
}
注意releaseJavadocsJar
,這是一個gradle這個任務定義是這樣的:
android.libraryVariants.all { variant ->
if (variant.name == 'release') {
def taskJavadoc = task("releaseJavadocs", type: Javadoc) {
source = variant.javaCompile.source
classpath = files(((Object) android.bootClasspath.join(File.pathSeparator)))
classpath += files(variant.javaCompile.classpath.files)
}
task("releaseJavadocsJar", type: Jar) {
classifier = 'javadoc'
from taskJavadoc.destinationDir
}
}
}
當我的gradle同步此行
artifact releaseJavadocsJar
從出版物抱怨
Error:(62, 0) Could not get unknown property 'releaseJavadocsJar' for object of type org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication.
這意味着當gradle這個同步發生時我的動態創建的任務還沒有。
有沒有辦法解決這個問題?
請嘗試移動有'releaseJavadocsJar'的定義'publishing'塊之前的代碼塊。 – Opal
該定義位於發佈區塊之前,但發佈區塊似乎首先被調用 –
有一段時間,我認爲您可以更改插件順序,但這無濟於事。您可以嘗試將'publish'塊移至'project.afterEvaluate'閉包。在這個塊中,整個項目被評估,所有任務都應該被添加。你能試試嗎? – Opal