我想使用外部BOM来管理SBT中项目的依赖项版本。
例如,AWS Java SDK将材料清单工件发布到其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是否有类似的插件?
答案 0 :(得分:2)
我正在寻找相同的商品,并且在很多地方都进行过搜索。
我发现最有趣的是,看起来SBT项目上有Open Ticket:
https://github.com/sbt/sbt/issues/4531
等不及要解决!
答案 1 :(得分:0)
你有没有尝试过使用常春藤?它允许您指定&#34;获取最新的&#34;使用rev="+"
<ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven" xmlns:e="http://ant.apache.org/ivy/extras">
<dependencies>
<dependency org="com.amazonaws" name="aws-java-sdk-s3" rev="+" conf="compile->compile(*),master(*);runtime->runtime(*)" />
</dependencies>
</ivy-module>
请参阅http://www.scala-sbt.org/1.0/docs/Library-Dependencies.html
答案 2 :(得分:0)
如果我对您的理解正确,可以将其添加到libraryDependencies:
"com.amazonaws" % "aws-java-sdk-bom" % "1.11.800" pomOnly()
您仍然必须将该版本号放入变量中,并与您实际需要的SDK一起使用,除非有人知道在修订版字段中使用的正确方法。我知道如果您想要最新的发行版本,可以latest.release
。