在Artifactory'PublishingExtension'上使用Gradle发布jar时出错

时间:2015-02-13 19:24:28

标签: gradle

Daer all

尝试部署和工件我得到此错误,我如何在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]

1 个答案:

答案 0 :(得分:1)

我将分享一些见解,以解释正在发生的事情。这里没有足够的细节让我确定我的见解是否完全适用于这种情况。

通常,在gradle配置阶段,扩展会通过插件为根项目或子项目注册,该扩展包含该插件。在gradle执行阶段,当调用与插件关联的任务时,该任务会查询以获取扩展。在您的情况下,该错误消息表示尚未注册所需的扩展名,它使您知道该项目或子项目可用的扩展名列表。我可以想到的两件事可能是:1.)插件存在一个错误,即扩展名未注册(或有时由于某些其他掩蔽的错误而未注册),或2.)您尝试访问来自未注册此扩展的项目或子项目的此扩展。第二种情况很有可能在这里发生。

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

我的直觉告诉我这可能正在发生,但是这里没有足够的信息来确认这一点。我希望我的最新答案对其他人有用。