使用 gradle 构建 netflix nicobar 时出错

Error while building netflix nicobar using gradle

我检查了 Nicobar 并尝试使用 gradle 版本 3.4 构建它但失败了。还尝试在似乎使用 gradle 2.2 版的 STS 中构建它,但再次出错。

with gradle 2.2: java.lang.NoClassDefFoundError: org/gradle/api/internal/project/AbstractProject
    at nebula.plugin.netflixossproject.NetflixOssProjectPlugin.apply(NetflixOssProjectPlugin.groovy:47)
    at nebula.plugin.netflixossproject.NetflixOssProjectPlugin.apply(NetflixOssProjectPlugin.groovy)
    at org.gradle.api.internal.plugins.ImperativeOnlyPluginApplicator.applyImperative(ImperativeOnlyPluginApplicator.java:35)


with gradle 3.4: org.gradle.api.plugins.InvalidPluginException: An exception occurred applying plugin request [id: 'nebula.netflixoss', version: '2.2.5']
    at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugin(DefaultPluginRequestApplicator.java:168)
    at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugins(DefaultPluginRequestApplicator.java:124)
    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:131)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:39)

Netflix Nicobar 附带 gradle 包装器,它已配置为使用适当的 gradle 版本构建项目。而不是使用已安装的 gradle 尝试使用包装器 - 它指向 2.2.1 版本。我刚刚签出并构建了项目,一切正常。

使用 gradle 3.4.1 它失败并出现相同的异常:

java.lang.NoClassDefFoundError: org/gradle/api/internal/project/AbstractProject at nebula.plugin.netflixossproject.NetflixOssProjectPlugin.apply(NetflixOssProjectPlugin.groovy:47) at nebula.plugin.netflixossproject.NetflixOssProjectPlugin.apply(NetflixOssProjectPlugin.groovy)

这意味着 Nicobar 使用旧版本的 NetflixOssProjectPlugin.groovy,它依赖于 org.gradle.api.internal.project.AbstractProject - 现在已从依赖项中删除,如您所见 here。使用 gradle 包装器。