【问题标题】:Exclude latest version of dependent projects in Scala在 Scala 中排除最新版本的依赖项目
【发布时间】:2017-03-01 21:22:01
【问题描述】:

我也将 scalaVertion 2.10.5 更改为 2.11.7 和 sbtVersion。和 我正在编译 mycompany-sales 项目之一,它与 mycompany-common 项目有依赖关系。

我的罐子会像这样创建。 mycompany--ScalaVersion-localversion-SNAPSHOT.

但在这里,我不会更改 mycompany-common 中的任何内容。所以,我想使用我之前使用的旧的 mycompany-common jar。

在 scala 版本更改后编译后,我收到如下错误:

[警告] :::::::::::::::::::::::::::::::::::::::::::: ::

[警告] :: 未解决的依赖关系 ::

[警告] :::::::::::::::::::::::::::::::::::::::::::: ::

[警告] :: com.mycompany#mycompany-common-read_2.11;2.9.57: 未找到

[警告] :: com.mycompany#mycompany-common-write_2.11;2.9.57: 未找到

[警告] :::::::::::::::::::::::::::::::::::::::::::: ::

我正在使用 mycompany-common-read_2.10-2.9.57,我也需要在 mycompany-sales 中的 Scala 版本更改后使用它。

我必须在 build.sbt 中做什么?

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

    是的。您需要使用 Scala 2.11 编译您的公司库。然后这将自动解决。

    【讨论】:

    • 还有其他选择吗?
    • 据我所知,没有其他办法。您必须针对 2.11 进行交叉编译
    【解决方案2】:

    可能使用 groupID % artifactID % revision,而不是 groupID %% artifactID % revision

    【讨论】:

      【解决方案3】:

      可能能够使用 Scala 2.11 编译 mycompany-common-read 而无需在其中进行任何更改:

      > sbt // in mycompany-common-read directory
      > ++2.11.7
      > publishLocal
      

      这是否有效,取决于它自己的实现(当然,如果它具有相同问题的依赖项)。

      【讨论】:

      • 那么不幸的是,你运气不好。您可以尝试使用 atline 的方法,但它甚至不能保证远程工作。
      猜你喜欢
      • 1970-01-01
      • 2023-03-12
      • 2022-06-11
      • 2016-08-11
      • 2023-02-06
      • 1970-01-01
      • 2014-10-13
      • 2018-10-18
      • 1970-01-01
      相关资源
      最近更新 更多