scala - 如何使用 maven BOM( Material list )来管理我在 SBT 中的依赖项?

标签 scala sbt maven-bom

我想在 SBT 中使用外部 BOM 来管理我的项目的依赖版本。

例如,AWS Java SDK 将 Material list 工件发布到其 maven 存储库:https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-bom/1.11.86

我可以使用它来管理 AWS 开发工具包中的依赖项版本。在 Maven 中,我可以通过将 BOM 添加到我的 <dependencyManagement> 来做到这一点。像这样的部分:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-bom</artifactId>
      <version>1.11.86</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

然后,当我想使用 BOM 中涵盖的模块时,我可以省略版本,BOM 将为我解决它:
<dependencies>
  <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-s3</artifactId>
  </dependency>
  <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-sns</artifactId>
  </dependency>
</dependencies>

同样在 Gradle 中,我可以使用 BOM 为我管理依赖关系,使用这个 plugin ,像这样:
apply plugin: "io.spring.dependency-management"

dependencyManagement {
    imports {
        mavenBom 'com.amazonaws:aws-java-sdk-bom:1.11.86'
    }
}

dependencies {
    compile 'com.amazonaws:aws-java-sdk-sns'
    compile 'com.amazonaws:aws-java-sdk-s3'
}

SBT有类似的插件吗?

最佳答案

我正在寻找相同的东西,并在很多地方进行了搜索。
我发现最有趣的是 SBT 项目上似乎有 Open Ticket:
https://github.com/sbt/sbt/issues/4531
等不及解决了!

关于scala - 如何使用 maven BOM( Material list )来管理我在 SBT 中的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42032303/

相关文章:

scala - 在Scala中的运行时获取类型的字符串表示形式

scala - 如何使编译任务依赖于sbt中的其他任务?

java - Maven 是否有办法将依赖版本作为属性获取?

spring - 隐式导入的Maven BOM文件在Gradle中占主导地位吗?

scala - Future Recursion Patterns/Future Chaining 任意长度

scala - 由于SSL连接已经关闭,如何解决Droping Close的错误

java - Play Framework 中的安全模块使用

scala - 如何在SBT Scala中播放声音文件

maven - 服务器访问错误 : java. security.cert.CertificateException : No subject alternative DNS name matching repo1. maven.org found

maven - Maven 中的 BOM 依赖与父依赖