gpt4 book ai didi

Gradle:使用不同名称覆盖依赖项

转载 作者:行者123 更新时间:2023-12-02 09:59:43 25 4
gpt4 key购买 nike

我正在尝试导入 org.scalatra:scalatra-atmosphere:2.2.0-RC3 进入 Scala 2.10 项目。问题是这个包依赖于两个非 Scala 版本的包 com.typesafe.akka:akka-actor:2.0.4com.typesafe.akka:akka-testkit:2.0.4 ( org.scala-lang:scala-library:2.9.2org.scalatra:scalatra-json:2.2.0-RC3 应该可以正常工作,因为它们会转到最新版本)。据我所知,Maven Central 上不存在 Akka 依赖项,因此我们的包已损坏。

我想覆盖org.scalatra:scalatra-atmosphere:2.2.0-RC3通过将非 Scala 版本的包替换为实际存在的 Scala 版本的包来手动检查依赖项:

configurations.all {
resolutionStrategy {
eachDependency { details ->
if (details.requested.group == 'com.typesafe.akka') {
details.requested.name += "_$scalaVersion"
details.useVersion '2.1.0'
}
}
}
}

不幸的是,从 Gradle 1.4 开始,这种技术似乎被明确禁止:

 What went wrong:
Could not resolve all dependencies for configuration ':compile'.
> new ModuleRevisionId MUST have the same ModuleId as original one. original = com.typesafe.akka#akka-actor new = com.typesafe.akka#akka-actor_2.10

有合法的方法来解决这个问题吗?

最佳答案

1.4 中仅支持版本更改,1.5 是因为包含对更改依赖项的其他属性的支持。

我认为您的选择是排除特定依赖项并手动将其添加回来的变体。示例可以在 the docs 中找到。

dependencies {
compile("org.scalatra:scalatra-atmosphere:2.2.0-RC3) {
exclude group: 'com.typesafe.akka', module: 'akka-actor'
exclude group: 'com.typesafe.akka', module: 'akka-testkit'
}
// assuming you have this available in a repository your build is configured to resolve against
compile 'com.typesafe.akka:akka-actor:2.0.4-MY.LOCAL.VERSION'
}

关于Gradle:使用不同名称覆盖依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14577138/

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