scala-js的无形端口:创建几乎没有外部依赖关系的工件

时间:2014-06-26 21:13:33

标签: scala sbt shapeless scala.js

scala-js(https://github.com/alexander-myltsev/shapeless)有一个无形库的端口。我需要正确地发布工件,并且对原始无形的可能性较少。

现在我分叉了Miles Sabin的回购,并添加了生成scala-js库所需的更改:添加scalajs-sbt-plugin,调整build.scala,添加bintray-sbt-plugin。

要求无形维护者合并我的分支是错误的,因为scala-js可能会破坏他们的构建。

另一方面,我也希望对原始回购具有最小的依赖性。从理论上讲,我理想的是从头开始创建无形scalajs sbt-project。然后以某种方式引用原始的无形库。然后从shapeless-build-scala派生所需的覆盖,以针对scala-js构建它并发布到我的bintray。

我相信全能的sbt :)我有什么选择来解决这个问题?

1 个答案:

答案 0 :(得分:3)

我认为最简单的方法是(不涉及任何讨论):

  1. 叉形无形
  2. 创建Scala.js分支
  3. 根据需要更改构建文件。也就是说,直接在PR中修改shapelessCore项目。 (添加scalaJSSettings,您的回购坐标)
  4. 提交
  5. 向你的maven中心发布无形
  6. 当一个新版本的无形状出现时,只需将你的scala.js分支合并为无形/主控。如果构建文件没有发生任何变化,这将合并得很好。
  7. 重新发布
  8. 这比依赖于外部项目(doable的sbt项目更容易,但不能直接允许您重复使用设置等。)