Jak*_*sky 7 java-native-interface scala sbt
我有一个项目使用SBT作为构建系统,并将Scala/Java和本机源与JNI结合在一起.
为了保持尽可能灵活,我目前计划发布这种项目是发布两个不同的jar:一个包含纯字节码(本机二进制的引用留给最终用户)和一个胖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和一个胖罐的惯用方法是什么?