【问题标题】:Setting a key local.sbt so that it is applied in a multi-project设置 key local.sbt 以便在多项目中应用
【发布时间】:2017-03-10 02:10:59
【问题描述】:

如何在local.sbt 中设置密钥,以便每个子项目都能找到它?

我正在尝试在一个多项目中使用 Coursier 插件,但由于我正在测试它,我试图不在我们的 git 存储库中检查它。

所以我把它放在我的project/local.sbt 中,我试图在local.sbt 中设置coursierUseSbtCredentials := true。 这没有明显的效果

  • 经过身份验证的关系在我的 build.sbt 中的 commonSettings val 中定义

    val commonSettings = Seq(
      ...
      resolvers += "my-nexus" at "http://blah",
      credentials += ... 
    )
    

    每个子项目都使用.settings(commonSettings)(根据最佳实践指南)

  • 如果我将coursierUseSbtCredentials := true 放在commonSettings 中,它确实有效,但我必须将它添加到我的build.sbt 中,我宁愿不这样做。

如何设置这个键,以便每个子项目都可以看到它,它在build.sbt 文件的外部? (例如local.sbt?)

【问题讨论】:

    标签: sbt nexus multi-project resolver


    【解决方案1】:

    project/SetupCoursierPlugin.scala创建一个本地插件:

    import sbt._
    
    import coursier.CoursierPlugin, CoursierPlugin.autoImport._
    
    object SetupCoursierPlugin extends AutoPlugin {
      override def requires = CoursierPlugin
      override def trigger  = allRequirements
    
      override def projectSettings = Seq(
        coursierUseSbtCredentials := true
      )
    }
    

    【讨论】:

    • 我把它放在local.scala 并添加到.gitignore。按预期工作。谢谢。
    猜你喜欢
    • 2021-12-14
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 2019-11-05
    • 1970-01-01
    • 2013-03-28
    相关资源
    最近更新 更多