javah应该在哪里适合SBT构建?

时间:2015-09-02 11:57:58

标签: scala sbt

javah用于从@native方法生成C标头。它在编译的类文件上运行,因此它需要一个类路径作为参数。出于这个原因,让javah任务取决于fullClasspath in Compile似乎是明智的。

我面临的问题是,为了构建本机库,需要生成的头文件,本机库需要是一个资源。但是,因为它是一种资源,它将被包含在fullClasspath in Compile中,这会导致循环依赖。

SBT是否有包含所有.class个文件但排除资源的类路径密钥?

1 个答案:

答案 0 :(得分:1)

我刚刚发现了sbt-jni,这是一个非常有趣的新SBT插件,它简化了与SBT的JNI合作。

在阅读一些源代码时,我偶然发现了 this line ,这似乎是指你所面临的问题。如果我理解正确,sbt-jni中的解决方法是合并dependencyClasspath in Compilecompile in CompileclassDirectory in Compile,而不是使用fullClasspath in Compile。我不确定这是否会导致包含所有.class文件的类路径,但也许类似的东西也适用于你。