我可以用我的程序打包外部工具吗?

时间:2016-08-13 21:37:16

标签: scala maven jar build sbt

我依赖对7z(LGPL)的shell调用来处理我正在处理的项目的一个重要部分:具体来说,打开Header Set Access-Control-Allow-Origin "{YOUR_WEBSITE_URL}"个文件。我遇到的问题是无法保证我能够在用户的计算机上找到它(假设它甚至在他们的计算机上)。

有没有办法将二进制文件保存在我的编译工具中,所以我不必担心外部调用它们? (我的印象是这是jar文件的用途,但我不确定。)

或者,如果不可能,那么标准的解决方法是什么?

1 个答案:

答案 0 :(得分:1)

通常来说,这是您希望获得库依赖项来处理文件解压缩的地方。有些人使用Apache Commons Compress,在您的sbt构建定义中需要this library dependency

libraryDependencies += "org.apache.commons" % "commons-compress" % "1.5"  // Or whatever version you need

或者,您可以将exe文件包含在resources文件中,该文件将包含在您的构建中 - 假设可执行文件不需要在系统级别安装。这可以像创建src/main/resources目录并将文件放在那里一样简单。但是,您的jar 在兼容的系统架构上工作,所以在走这条路线之前要三思而后行。除非有特殊原因需要使用7-zip解压缩文件,否则最好使用Java或Scala兼容的库,避免必须进行shell调用。