Fork me on GitHub
#clojure-italy
<
2019-05-25
>
andrea.crotti17:05:48

un giorno capiro' come funzionano le resources in Clojure/java

andrea.crotti17:05:58

questa funzione va benissimo in dev

(defn graphs
  []
  (filter
   #(.isFile %)
   (file-seq
    (io/file
     (io/resource "graphs")))))

andrea.crotti17:05:42

ma nel'uberjar sbrocca

andrea.crotti17:05:02

user=> (io/file (io/resource "graphs"))
Execution error (IllegalArgumentException) at user/eval15 (REPL:1).
Not a file: jar:file:/Users/acrotti/src/topology-viewer/target/topology-viewer.jar!/graphs

andrea.crotti17:05:13

eppure se guardo nel jar c'e' graphs con dentro i files che mi servono

andrea.crotti17:05:09

uhm (io/file "resources/graphs") funziona invece il vigliacco

andrea.crotti17:05:01

ah no come non detto funziona solo perche' sono nella directory del progetto, non funzionerebbe dal jar da solo

andrea.crotti17:05:25

vabbeh li tiro fuori da resources direttamente per adesso, ma mi piacerebbe capire che caspita

mdallastella17:05:29

@andrea.crotti stai usando lein?

mdallastella17:05:33

Se sì, hai aggiunto :resource-paths al project.clj?

andrea.crotti18:05:40

ah si ho messo "resources" ma adesso che mi ci fai pensare magari devo mettere "resources/graphs"

andrea.crotti18:05:05

non dovrei riuscire comunque ad accedere a "resources/graphs" se e' una subdirectory?

mdallastella18:05:48

Sì, mi viene da dire di sì

andrea.crotti18:05:25

eh boh non va, forse non gli piace che provo a fare io/file sulla resource

andrea.crotti18:05:57

ma per fare file-seq mi serve, vabbeh nel frattempo ho spostato in cljc/, sono solo un po' di edns files e non e' neanche una cosa definitiva visto che dovrei caricarli da S3 poi