如何在sbt项目中使用jnaerator

时间:2015-06-10 09:12:59

标签: java c++ maven sbt jnaerator

我使用sbt处理使用c ++代码的Scala项目。编译完成后,这个c ++代码将通过使用jna的Java代码导入Scala。

现在,Java包装器是手动编写的,我喜欢自动化它。我找到了可以做到这一点的jnaerator,但我不知道如何在sbt中使用它。

我看到两种一般方法:

  1. 使用命令行,例如java -jar jnaerator ...,但我不知道如何在sbt中设置这样的命令行任务?另外,我需要知道要遵循的典型项目结构:在哪里输出jna生成的代码?
  2. 如果可能的话,通过sbt使用jnaerator maven插件?

1 个答案:

答案 0 :(得分:1)

这可能需要一些迭代,直到我们得到你需要的东西。

对于第一种方法,以下是如何在sbt上运行自定义系统命令(基本上使用Scala代码解决此问题)。将以下内容添加到build.sbt文件中:

lazy val runJnaerator= taskKey[Unit]("This task generates libraries from native code")

runJnaerator := {
    import sys.process._
    Seq("java" , "-jar", "jnaerator", "..." ).!
}

执行:

>sbt runJnaerator

现在问题是你需要将这些文件文件放在哪里?最后,你想如何调用一切?