3

如果我想包含一个用于 sbt 的插件,我addSbtPlugin()plugins.sbt. 因此,要添加 gen-idea 插件,我将使用以下行:

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.0")

唉,我必须明确指定版本1.5.0。如果我想在最新可用版本可用时使用它怎么办?

当我省略第三个参数时,我收到以下错误:

C:\Users\JDearing\Documents\deleteme\LearningScala>sbt gen-idea
C:\Users\JDearing\.sbt\0.13\plugins\build.sbt:1: error: type mismatch;
 found   : sbt.impl.GroupArtifactID
 required: sbt.ModuleID
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" )
                                ^
[error] Type error in expression
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? q

是否可以避免在 中指定版本addSbtPlugin()

4

2 回答 2

3

sbt 插件只是您构建的另一个库 https://github.com/sbt/sbt/blob/0.13/main/src/main/scala/sbt/Defaults.scala#L1513

对于图书馆,你有常春藤解析规则

Ivy 修订
groupID % artifactID % revision 中的修订不必是单个固定版本。Ivy 可以根据您指定的约束选择模块的最新版本。您可以指定“latest.integration”、“2.9.+”或“[1.0,)”,而不是像“1.6.1”这样的固定版本。有关详细信息,请参阅Ivy 修订文档。

来自 http://www.scala-sbt.org/release/docs/Getting-Started/Library-Dependencies.html#ivy-revisions

于 2013-09-04T15:47:17.837 回答
2

tl;博士不。没有办法关闭版本。它是 的一部分sbt.ModuleID

但是,您可以使用latest.integrationlatest.milestone避免明确指定版本。Ivy 和 SBT 将负责“选择最新版本作为里程碑或发布”

你也可以参考我对关于 sbt-idea 插件的类似问题的回答

于 2014-01-02T11:48:54.983 回答