Clojure 和 maven ...无法读取资源数据文件
Clojure and maven ... can't read a resource data file
我在 Clojure 应用程序的 Maven pom.xml 文件中有这个:
<resources>
<resource>
<directory>src/main/clojure/com/codenvy/example/clojure</directory>
<includes>
<include>test.fasta</include>
</includes>
</resource>
</resources>
和 (slurp "test.fasta")
在我的 Clojure 代码中。
Clojure 文件 "App.clj" 和数据文件 "test.fasta" 文件位于目录
中
src/main/clojure/com/codenvy/example/clojure
但我总是得到一个错误:
...
[STDERR] Exception in thread "main" java.io.FileNotFoundException: test.fasta (No such file or directory)
[STDERR] at java.io.FileInputStream.open(Native Method)
[STDERR] at java.io.FileInputStream.<init>(FileInputStream.java:146)
[STDERR] at clojure.java.io$fn__8702.invoke(io.clj:229)
[STDERR] at clojure.java.io$fn__8615$G__8606__8622.invoke(io.clj:69)
[STDERR] at clojure.java.io$fn__8714.invoke(io.clj:258)
[STDERR] at clojure.java.io$fn__8615$G__8606__8622.invoke(io.clj:69)
[STDERR] at clojure.java.io$fn__8676.invoke(io.clj:165)
[STDERR] at clojure.java.io$fn__8628$G__8610__8635.invoke(io.clj:69)
[STDERR] at clojure.java.io$reader.doInvoke(io.clj:102)
[STDERR] at clojure.lang.RestFn.invoke(RestFn.java:410)
[STDERR] at clojure.lang.AFn.applyToHelper(AFn.java:154)
[STDERR] at clojure.lang.RestFn.applyTo(RestFn.java:132)
[STDERR] at clojure.core$apply.invoke(core.clj:626)
[STDERR] at clojure.core$slurp.doInvoke(core.clj:6390)
[STDERR] at clojure.lang.RestFn.invoke(RestFn.java:410)
[STDERR] at com.codenvy.example.clojure.App$_main.doInvoke(App.clj:35)
[STDERR] at clojure.lang.RestFn.applyTo(RestFn.java:137)
[STDERR] at com.codenvy.example.clojure.App.main(Unknown Source)
...
slurp
在 relative/absolute 路径上运行而不考虑类路径。但是你仍然可以使用 clojure.java.io/resource
:
(require '[clojure.java.io :as io])
(slurp (io/resource "test.fasta"))
请注意io/resource
returns nil
如果找不到资源。你可能想提防这种情况。
我在 Clojure 应用程序的 Maven pom.xml 文件中有这个:
<resources>
<resource>
<directory>src/main/clojure/com/codenvy/example/clojure</directory>
<includes>
<include>test.fasta</include>
</includes>
</resource>
</resources>
和 (slurp "test.fasta")
在我的 Clojure 代码中。
Clojure 文件 "App.clj" 和数据文件 "test.fasta" 文件位于目录
中src/main/clojure/com/codenvy/example/clojure
但我总是得到一个错误:
...
[STDERR] Exception in thread "main" java.io.FileNotFoundException: test.fasta (No such file or directory)
[STDERR] at java.io.FileInputStream.open(Native Method)
[STDERR] at java.io.FileInputStream.<init>(FileInputStream.java:146)
[STDERR] at clojure.java.io$fn__8702.invoke(io.clj:229)
[STDERR] at clojure.java.io$fn__8615$G__8606__8622.invoke(io.clj:69)
[STDERR] at clojure.java.io$fn__8714.invoke(io.clj:258)
[STDERR] at clojure.java.io$fn__8615$G__8606__8622.invoke(io.clj:69)
[STDERR] at clojure.java.io$fn__8676.invoke(io.clj:165)
[STDERR] at clojure.java.io$fn__8628$G__8610__8635.invoke(io.clj:69)
[STDERR] at clojure.java.io$reader.doInvoke(io.clj:102)
[STDERR] at clojure.lang.RestFn.invoke(RestFn.java:410)
[STDERR] at clojure.lang.AFn.applyToHelper(AFn.java:154)
[STDERR] at clojure.lang.RestFn.applyTo(RestFn.java:132)
[STDERR] at clojure.core$apply.invoke(core.clj:626)
[STDERR] at clojure.core$slurp.doInvoke(core.clj:6390)
[STDERR] at clojure.lang.RestFn.invoke(RestFn.java:410)
[STDERR] at com.codenvy.example.clojure.App$_main.doInvoke(App.clj:35)
[STDERR] at clojure.lang.RestFn.applyTo(RestFn.java:137)
[STDERR] at com.codenvy.example.clojure.App.main(Unknown Source)
...
slurp
在 relative/absolute 路径上运行而不考虑类路径。但是你仍然可以使用 clojure.java.io/resource
:
(require '[clojure.java.io :as io])
(slurp (io/resource "test.fasta"))
请注意io/resource
returns nil
如果找不到资源。你可能想提防这种情况。