在存储库容器上找不到参数 [] 的方法 jcenter()
Posted
技术标签:
【中文标题】在存储库容器上找不到参数 [] 的方法 jcenter()【英文标题】:Could not find method jcenter() for arguments [] on repository container 【发布时间】:2015-02-12 17:54:27 【问题描述】:我是 Gradle 和 bintray 的新手。我想发布this project,以便 Maven 和 SBT 用户可以随时使用它。我不是这个包的原作者;它appears to have been abandoned;我只想发布当前的 HEAD。
~/.gradle/gradle.properties
类似于:
bintrayUser=mslinn
bintrayKey=blahblah
build.gradle
看起来像这样。:
buildscript
repositories
jcenter()
dependencies
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
apply plugin: 'com.jfrog.bintray'
allprojects
apply plugin: 'idea'
group = 'org.jfrog.example.bintray.gradle'
version = '1.0'
subprojects
apply plugin: 'java'
apply plugin: 'maven-publish'
apply plugin: 'com.jfrog.bintray'
sourceCompatibility = 1.6
targetCompatibility = 1.6
dependencies
testCompile 'junit:junit:4.7'
// custom tasks for creating source/javadoc jars
task sourcesJar(type: Jar, dependsOn: classes)
classifier = 'sources'
from sourceSets.main.allSource
task javadocJar(type: Jar, dependsOn: javadoc)
classifier = 'javadoc'
from javadoc.destinationDir
// add javadoc/source jar tasks as artifacts
artifacts
archives sourcesJar //, javadocJar
repositories
jcenter()
publishing
publications
mavenJava(MavenPublication)
if (plugins.hasPlugin('war'))
from components.web
else
from components.java
artifact sourcesJar
classifier "sources"
artifact javadocJar
classifier "javadoc"
bintray
user = bintrayUser //this usually comes form gradle.properties file in ~/.gradle
key = bintrayKey //this usually comes form gradle.properties file in ~/.gradle
publications = ['mavenJava'] // see publications closure
pkg //package will be created if does not exist
repo = 'Java-WebSocket'
// userOrg = 'myorg' // an optional organization name when the repo belongs to one of the user's orgs
name = 'Java-WebSocket'
desc = 'Current HEAD of abandoned project'
licenses = ['MIT']
labels = ['websocket', 'java']
task wrapper(type: Wrapper)
gradleVersion = '1.10'
问题来了:
$ gradle bintrayUpload
FAILURE: Build failed with an exception.
* Where:
Build file '/var/work/experiments/websockets/Java-WebSocket/build.gradle' line: 3
* What went wrong:
A problem occurred evaluating root project 'Java-WebSocket'.
> Could not find method jcenter() for arguments [] on repository container.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
我正在寻找有关如何解决错误消息的建议,以及有关我可能遇到的任何设置问题的建议,包括将此项目纳入 JCenter,以便所有人都可以使用已发布的 bintray 项目。
【问题讨论】:
你可能使用的是旧版本的 gradle,它还没有这个方法。gradle -version
说什么?
今天通过 apt-get 在 XUbuntu 上安装。 $ gradle -version ---------------------------------------------- -------------- Gradle 1.5 ---------------------------------- -------------------------- Gradle 构建时间:2014 年 6 月 15 日星期日下午 3:27:36 UTC Groovy:1.8.6 Ant: Apache Ant(TM) 版本 1.9.4 编译于 2014 年 5 月 9 日 Ivy:非官方版本 JVM:1.8.0_25 (Oracle Corporation 25.25-b02) OS:Linux 3.16.0-28-generic amd64
那是一个相当老的 Gradle 版本,确实没有 jcenter()
。当然,您始终可以将 JCenter 配置为常规 Maven 存储库 (maven url "..."
),而不是使用快捷方式。
gradle 1.5 已经很老了。当前版本是 2.2.1。最后一个 1.x 版本是 1.12。您应该升级,并考虑使用 gradle 包装器:gradle.org/docs/current/userguide/gradle_wrapper.html。
所以apt-get提供的Gradle已经过时了。我想知道如何通知适当的人以便他们可以更新 .deb?我会添加这个 ppa,似乎它应该给我当前版本:launchpad.net/~cwchien/+archive/ubuntu/gradle
【参考方案1】:
简单总结一下cmets中的讨论:
Gradle 在 1.7 版本中添加了jcenter()
快捷方式。它之前的任何版本都将因此异常而失败。
您仍然可以通过将 jcenter 添加为普通的 maven 存储库来使用它:
repositories
maven
url "https://jcenter.bintray.com"
....
【讨论】:
我使用 cwchein 的 PPA 更新了 Grade。似乎没有人在默认的 Debian 存储库中维护 .deb。但是,我遇到了当前的错误:> 没有为属性“packageName”指定值。 > 没有为属性“用户”指定值。 > 没有为属性“apiKey”指定值。 > 没有为属性“repoName”指定值。其中一些值在 build.gradle 中,有什么问题? 我会说这些是单独的问题,值得单独提问。如果jcenter()
有效,我会接受答案并继续前进。我很乐意在专门的问题中为其他问题提供帮助。
来自 Twitter:baruch mslinn,因为 DSL 发生了变化。您将 1.0 与 DSL 一起用于 0.6。我们会更新。
我们的推特讨论与这个问题(以及正确答案)无关。 jcenter
是在 1.7 中添加的,这就是它在旧版本中失败的原因。为什么要删除接受和投票?
帖子中的最后一句话是:“我正在寻找有关如何解决错误消息的建议,以及我可能遇到的任何设置问题的建议,包括将此项目纳入 JCenter,因此发布bintray 项目可供所有人使用。”【参考方案2】:
我在一个 android 项目中得到了这个,需要在 gradle-wrapper.properties
中将 Gradle 升级到 4.1。
【讨论】:
这对我有用。我根据developer.android.com/studio/releases/gradle-plugin.html使用了最新的distributionUrl值【参考方案3】:转到 Android 项目选项卡,在资源管理器中折叠 Gradle 脚本。您将 找到一个名为 gradle-wrapper.properties 的文件。
打开文件,全选,粘贴以下代码:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
立即同步
但在此之前您必须在 build.gradle (Project) 文件中进行更改
打开文件选择全部并复制以下代码到整个工作表中:
buildscript
repositories
google()
jcenter()
dependencies
classpath 'com.android.tools.build:gradle:3.1.2'
classpath 'com.google.gms:google-services:4.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
allprojects
repositories
google()
jcenter()
maven url 'https://jitpack.io'
task clean(type: Delete)
delete rootProject.buildDir
立即同步
【讨论】:
此答案适用于 Android,而不是 Scala / SBT @MikeSlinn 这只是 Android Gradle 文件..这不是 Scala..请检查第一个然后评论 我是原创者。我想使用 Gradle 而不是在 Scala 项目中使用的 SBT。你在谈论别的东西。【参考方案4】:我遇到了同样的错误。以下方法(如here 所述)对我有用。
添加任务
task wrapper(type: Wrapper)
gradleVersion = '2.0'
并运行一次。
之后,开始使用gradlew
而不是gradle
【讨论】:
我必须下载一个合适的新 gradle 才能运行“gradle wrapper”。【参考方案5】:我也遇到了同样的问题。就我而言,这是一个新手错误。也许它对任何人都有帮助。 我将代码从我更改的代码还原为原始代码。
我修改后的代码:
buildscript
ext.kotlin_version = '1.2.71'
repositories google() jcenter()
原代码:
buildscript
ext.kotlin_version = '1.2.71'
repositories
google()
jcenter()
【讨论】:
【参考方案6】:使用gradle
命令在命令行上构建 android 应用时出现此错误
试试:
./gradlew
而不是
分级
【讨论】:
【参考方案7】:当我停止下载 gradle 时发生这种情况,要解决这个问题,我们必须删除旧的 gradle 并更新和同步
删除使用
task clean(type: Delete)
delete rootProject.buildDir
要更新,请将其添加到您的 graddle-properties :
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
然后同步
【讨论】:
【参考方案8】:虽然听起来很傻,但请确保您在自己的线路上有 jcenter。我复制粘贴了一些代码,结果 jcenter 不在它自己的行上。
allprojects
repositories
google
content
...
jcenter() // DERP
maven url "https://jitpack.io"
maven url 'https://maven.google.com/'
【讨论】:
以上是关于在存储库容器上找不到参数 [] 的方法 jcenter()的主要内容,如果未能解决你的问题,请参考以下文章
Gradle eclipse 插件:在存储库容器上找不到参数 [] 的方法 jcenter()。有关详细信息,请参阅错误日志
在以下类型的对象上找不到参数 [com.android.tools.build:gradle:3.3.0] 的方法 classpath():