使用外部常春藤进行 sbt 构建

Posted

技术标签:

【中文标题】使用外部常春藤进行 sbt 构建【英文标题】:using external ivy for sbt build 【发布时间】:2019-11-07 16:29:21 【问题描述】:

在我的工作场所,我们开始使用 Scala。对于依赖项和构建,我们使用 ivy.xml 文件。我正在努力让 build.sbt 与 ivy.xml 一起使用。

https://www.scala-sbt.org/0.13/docs/Library-Management.html#External+Maven+or+Ivy 我查看了本指南,但示例代码不起作用。 [以下是我的 build.sbt 中的内容]

externalIvyFile(Def.setting(baseDirectory.value / "ivy.xml"))
classpathConfiguration in Compile := Compile
classpathConfiguration in Test := Test
classpathConfiguration in Runtime := Runtime
[error] java.lang.RuntimeException: unrecognized module settings: IvyFileConfiguration(false, Some(ScalaModuleInfo(2.12.8, 2.12, Vector(), true, false, true, org.scala-lang, Vector(scala-library, scala-compiler, scala-reflect, scala-actors, scalap))), /work/scalawork/local.study.exchanger/ivy.xml, true)

上面是我返回的错误代码。 sbt-1.2.8 scala-2.12.8 ivy-2.0

【问题讨论】:

【参考方案1】:

您是否在 build.sbt 的顶部声明了 externalIvySettings()

externalIvySettings()
externalIvyFile(Def.setting(baseDirectory.value / "ivy.xml"))
classpathConfiguration in Compile := Compile
classpathConfiguration in Test := Test
classpathConfiguration in Runtime := Runtime

【讨论】:

不,因为它是可选的,我们不使用外部设置文件。但是我尝试添加该行并仍然遇到相同的错误。好问题。

以上是关于使用外部常春藤进行 sbt 构建的主要内容,如果未能解决你的问题,请参考以下文章

如何在SBT中发布之前检查工件是否存在

常春藤发布到存储库不会更新本地缓存

什么是常春藤?它与蚂蚁有什么关系?

使用 sbt 进行多项目构建

使用 SBT 进行跨平台构建

使用SBT构建Scala应用转载