Gradle 在Artifactory';上发布带有渐变的jar时出错;出版分机';

Gradle 在Artifactory';上发布带有渐变的jar时出错;出版分机';,gradle,Gradle,达尔 尝试部署和工件时,我遇到了这个错误,我如何在Gradle版本2.2.1中解决这个问题 apply plugin: 'maven-publish' defaults { publications ('mavenJava') } * What went wrong: Extension of type 'PublishingExtension' does not exist. Currently registered

达尔

尝试部署和工件时,我遇到了这个错误,我如何在Gradle版本2.2.1中解决这个问题

apply plugin: 'maven-publish'
        defaults {
            publications ('mavenJava')
        }

* What went wrong:          
Extension of type 'PublishingExtension' does not exist. Currently registered extension types: [DefaultExtraPropert
iesExtension, DefaultArtifactPublicationSet_Decorated, ReportingExtension_Decorated, DefaultProjectSourceSet_Decor
ated, DefaultBinaryContainer_Decorated]

我将分享一些可以解释发生了什么的见解。这里没有足够的细节让我确定我的见解是否适用于这种情况

通常,该扩展通过根项目或子项目的插件注册,它在gradle配置阶段包含该插件。在gradle执行阶段,当调用与插件关联的任务时,任务查询以获取扩展。在您的情况下,错误消息表示它所需的扩展尚未注册,它让您知道可用于此项目或子项目的扩展列表。我能想到的两件事可能会导致这种情况:1)插件有一个错误,扩展没有注册(或者有时由于一些其他隐藏的错误而没有注册),或者2)您试图从没有注册扩展的项目或子项目访问此扩展。更有可能的是,第二种情况就是这里正在发生的事情

这里有一个具体的例子。com.android.library插件子项目不能直接访问AppExtension,但com.android.application插件可以直接访问AppExtension。也就是说,com.android.library插件项目可以通过使用project.rootProject获取AppExtension来间接访问AppExtension

我的直觉告诉我,这可能就是正在发生的事情,但这里没有足够的信息来证实这一点。我希望我迟来的回答能对其他人有用