SBT项目发布两件神器的惯用​​方式是什么?

我有一个使用SBT作为构建系统的项目,它将Scala / Java和本地源与JNI结合在一起。

为了尽可能保持灵活性,我目前发布这类项目的计划是发布两个不同的jar:一个包含纯字节码(引用本地二进制文件留给最终用户)和一个包含纯字节码的胖jar文件本地库并自动提取它们。

要生成脂肪罐子,我创建了一个名为任务packageFat基本上副本任务packageBin与其他映射到本地库和后缀“-fat”追加到名称。

构建配置的相关部分可以在这里查看:https://github.com/jodersky/flow/blob/master/project/nativefat.scala

但是,通过这种配置,任何依赖我的项目并希望包含fat jar的项目都必须声明以下形式的依赖项:

libraryDependencies += "<organization>" %% "<name>" % "<version>" artifacts Artifact("<name>-fat", "jar", "jar")

我知道使用JNI分发项目很笨拙,但最后'%'之后的部分使得依赖非常繁琐。 所以我的问题是:SBT从一个项目发布一个普通的jar和一个胖罐子的习惯用法是什么?


我将创建一个多项目构建文件,其核心子项目将被发布为“纯文本”,并将创建一个胖子项目,它将使用JNI进行发布,然后您可以使用两个不同的工件名称,如foo-corefoo-fat

事实上, foo-fat可能依赖于foo-core ,而它自己的工件只会包含JNI的东西。

链接地址: http://www.djcxy.com/p/76957.html

上一篇: What is the idiomatic way for an SBT project to publish 2 artifacts?

下一篇: include controller inside another controller