Gradle 意外状态';开发和#x27;为依赖项指定。预期为:[集成、里程碑、发布]
我正在使用Gradle和legacy ivy存储库构建项目,其中JAR是以自定义ivy状态构建的。不幸的是,Gradle似乎有这样的状态问题,因此我得到了错误: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
为*某些依赖关系*指定了意外状态“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)
}
}