Gradle 意外状态';开发和#x27;为依赖项指定。预期为:[集成、里程碑、发布]

Gradle 意外状态';开发和#x27;为依赖项指定。预期为:[集成、里程碑、发布],gradle,groovy,ant,ivy,Gradle,Groovy,Ant,Ivy,我正在使用Gradle和legacy ivy存储库构建项目,其中JAR是以自定义ivy状态构建的。不幸的是,Gradle似乎有这样的状态问题,因此我得到了错误: 为*某些依赖关系*指定了意外状态“DEV”:1.0.34。预期为:[集成、里程碑、发布] 下面是如何在build.gradle中定义依赖关系 compile 'dependency:some_dependecy:1.0.34' 和存储库定义 ivy { url 'http://local-repo/ivy-ca

我正在使用Gradle和legacy ivy存储库构建项目,其中JAR是以自定义ivy状态构建的。不幸的是,Gradle似乎有这样的状态问题,因此我得到了错误:

为*某些依赖关系*指定了意外状态“DEV”:1.0.34。预期为:[集成、里程碑、发布]

下面是如何在build.gradle中定义依赖关系

compile 'dependency:some_dependecy:1.0.34'
和存储库定义

    ivy {
        url 'http://local-repo/ivy-candidates-local/'
        layout 'pattern' , {
            artifact '[organisation]/[module]/[revision]/[type]s/[artifact].[ext]'
            ivy '[organisation]/[module]/[revision]/ivys/ivy.xml'
            m2compatible = true
        }
我认为这很好,因为所有其他依赖项(没有“自定义”状态)都被正确下载


我找不到关于这样一个问题的任何信息。有没有办法告诉Gradle查找自定义的“开发”状态而不是默认状态?

默认情况下,Gradle只将集成、里程碑和发布理解为有效的工件状态。如果您想要/需要保持工件的“DEV”状态,那么看起来您必须在build.gradle中添加一点定制Groovy

(从上面的链接,而不是我自己的代码:)


非常感谢。不幸的是,我这样做了,现在我得到了错误:
必需的org.gradle.dependency.bundling'external',但没有提供值。
必需的org.gradle.jvm.version'8',但没有提供值。
找到org.gradle.status'DEV',但不是必需的。(
class CustomStatusRule implements ComponentMetadataRule {
    @Override
    void execute(ComponentMetadataContext context) {
        def details = context.details
        if (details.id.group == "org.sample" && details.id.name == "api") {
            details.statusScheme = ["bronze", "silver", "gold", "platinum"]
        }
    }
}

dependencies {
    config3 "org.sample:api:latest.silver"
    components {
        all(CustomStatusRule)
    }
}