我正在使用一个外部Maven项目,其中生成的jar包含一个二进制文件,foo/bar/file.dat
其源中的确切路径为src/main/foo/bar/file.dat
。由于某种原因需要此文件,否则代码将引发异常。
我试图将其转换为SBT项目,但文件未包含在jar中。
我尝试添加includeFilter in Compile := "parser.dat"
,但这给了我一个错误:
IO error while decoding .../src/main/foo/bar/file.dat with UTF-8: MALFORMED[1]
Please try specifying another one using the -encoding option
Run Code Online (Sandbox Code Playgroud)
如何告诉SBT将“原样”文件包含在已编译的jar中?
编辑:链接的问题是无关的。该问题询问“如何正确读取资源?”,而我想知道“假设这是我必须读取资源的方式,那么如何正确创建jar?”。
我想按原样使用3rd party库,而无需更改代码。
尝试mappings
像这样将自定义文件添加到包中
mappings in (Compile, packageBin) += {
(baseDirectory.value / "src" / "main" / "foo" / "bar" / "file.dat") -> "foo/bar/file.dat"
}
Run Code Online (Sandbox Code Playgroud)
sbt package
现在执行应该会产生一个file.dat
包含在内的罐子。
归档时间: |
|
查看次数: |
57 次 |
最近记录: |