我有一个项目可以通过 Gradle 2 从命令提示符编译。但它不能被 Gradle 3 编译。
在 Eclipse 中,我正在尝试应用 Configure/Add Gradle Nature。然后我收到一个错误: “org.gradle.tooling.BuildException:无法使用 Gradle 分发运行构建操作'https://services.gradle.org/distributions/gradle-3.5-bin.zip ’”
有什么方法可以为 Gradle 2 配置项目吗?
最佳答案
实际上,当 Gradle 构建失败或无法构建模型时,会抛出此 BuildException。
建议#1:使用刷新依赖:
您可以使用命令行选项 --refresh-dependencies
刷新缓存中的依赖项。
建议#2:使用删除以前的 jar:
你也可以删除~/.gradle/caches
下的缓存文件。在下一次构建中,Gradle 尝试再次下载依赖项。
建议#3:使用包装器是最好的解决方案:
如果您的项目之前是使用特定版本构建和部署的,那么您无需为使用其他版本而头疼。您可以通过在 build.gradle 文件中添加包装器轻松地做到这一点。
// Running 'gradle wrapper' will generate gradlew - Getting gradle wrapper working and using it will save you a lot of pain.
task wrapper(type: Wrapper) {
gradleVersion = '2.2'
}
有关更多信息,您可以阅读本教程:The Gradle Wrapper
Gradle Wrapper 的作用是什么?
当您运行 Gradle Wrapper 时,它会执行以下操作:
- 解析传递给 gradlew 的参数
- 安装正确的 Gradle 版本
- 调用Gradle运行指定任务
包装器实际上与 Gradle 本身完全分离。
包装器配置:
wrapper 放置在您项目中的文件之一是位于 gradle/wrapper/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.0-all.zip
这里,
distributionBase + distributionPath --> 指定包装器将存储 Gradle 分发的路径。
默认情况下,GRADLE_USER_HOME 是 ~/.gradle
,因此包装器会将 Gradle 分发存储在 ~/.gradle/wrapper/dists
。
zipStoreBase 和 zipStorePath 非常相似。这些指定包装器将存储它下载的压缩分发的位置。
distributionUrl --> 它指定您要用于构建的 Gradle 版本以及从何处下载。
资源链接:
关于java - 如何将Gradle 2.0的Gradle性质添加到Eclipse项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50536505/