gpt4 book ai didi

java - buildSrc:无法获取 org.gradle.api.internal.artifacts.dsl.dependency.DefaultDependencyHandler 类型的对象的未知属性

转载 作者:行者123 更新时间:2023-12-01 16:25:20 29 4
gpt4 key购买 nike

我正在尝试重新组织这个Android (Java based) library使用buildSrc文件夹来定义所有版本和依赖项,如本 article 中所述。 .

我已经为 Kotlin 基础项目成功设置了几次。这次的项目是纯Java

buildSrc 文件夹中,我创建了以下 buildSrc/src/main/java/org/ligi/snackengage/Dependency.java 文件:

package org.ligi.snackengage;

public class Dependencies {

public static class Android { /* ... */ }

public static class GradlePlugins {
public static final String ANDROID = "com.android.tools.build:gradle:3.6.3";
// ...
}

public static class Libs { /* ... */ }

}

然后我引用项目根目录 build.gradle 中的定义:

import org.ligi.snackengage.Dependencies.GradlePlugins

apply plugin: "com.github.ben-manes.versions"

buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath GradlePlugins.ANDROID
classpath GradlePlugins.MAVEN
classpath GradlePlugins.VERSIONS
}
}

allprojects {
repositories {
google()
jcenter()
}
}

这是work in progress branch 。当我构建项目时,出现以下错误:

* Where:
Build file 'SnackEngage/build.gradle' line: 12

* What went wrong:
A problem occurred evaluating root project 'SnackEngage'.
> Could not get unknown property 'GradlePlugins' for object of type
org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

这是build log .

最佳答案

您已将 GradlePlugins 类定义为 Dependency 的内部静态类,因此您需要使用 Dependency.GradlePlugins 从您的应用程序中访问它构建脚本。

按如下方式更改依赖项 block :

import org.ligi.snackengage.Dependencies // do not import org.ligi.snackengage.Dependencies.GradlePlugins
buildscript {
// ...
dependencies {
classpath Dependencies.GradlePlugins.ANDROID
classpath Dependencies.GradlePlugins.MAVEN
classpath Dependencies.GradlePlugins.VERSIONS
}
}

编辑您还可以使用静态导入,如下所示:

import static org.ligi.snackengage.Dependencies.*
buildscript {
// ...
dependencies {
classpath GradlePlugins.ANDROID
classpath GradlePlugins.MAVEN
classpath GradlePlugins.VERSIONS
}
}

关于java - buildSrc:无法获取 org.gradle.api.internal.artifacts.dsl.dependency.DefaultDependencyHandler 类型的对象的未知属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62160145/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com