相关疑难解决方法(0)

如何在leiningen项目中打包资源

在示例项目中,

https://github.com/technomancy/leiningen/blob/master/sample.project.clj

在上line 217,有一个包含非代码文件的指令:

:resource-paths ["src/main/resource"] ; non-code files included in classpath/jar
Run Code Online (Sandbox Code Playgroud)

resources我的项目中有一个文件夹,而project.clj中的这一行

:resource-paths ["resources"] ; non-code files included in classpath/jar
Run Code Online (Sandbox Code Playgroud)

但是,当我运行lein jar生成.jar文件时,它不会打包resources文件夹。

有什么我想念的吗?

clojure leiningen

5
推荐指数
1
解决办法
3775
查看次数

Clojure Uberjar没有加载资源文件

我使用lein uberjar创建一个独立的应用程序jar.

执行时

java -jar dataloader-0.1.0-SNAPSHOT-standalone.jar,
Run Code Online (Sandbox Code Playgroud)

它崩溃了:

Caused by: java.lang.IllegalArgumentException: Not a file:
jar:file:dataloader-0.1.0-SNAPSHOT-standalone.jar!/configuration.json
Run Code Online (Sandbox Code Playgroud)

我通过以下方式加载文件:

(ns dataloader.configuration
  (:gen-class)
  (:require [cheshire.core :refer :all]
            [clojure.java.io :as io]))

(def data-file
  (io/file
    (io/resource "configuration.json")))
Run Code Online (Sandbox Code Playgroud)

project.clj

(defproject dataloader "0.1.0-SNAPSHOT"
  :description "Used for loading stage data into local vagrantbox"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :resource-paths ["resources"]
  :dependencies [[org.clojure/clojure "1.6.0"]
                 [clojurewerkz/elastisch "2.1.0"]
                 [org.clojure/java.jdbc "0.3.7"]
                 [mysql/mysql-connector-java "5.1.32"]
                 [clj-http "2.0.0"]
                 [org.clojure/data.json "0.2.6"]
                 [org.clojure/data.codec "0.1.0"]
                 [cheshire "5.5.0"]]

  :main ^:skip-aot dataloader.core
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}}) …
Run Code Online (Sandbox Code Playgroud)

resources jar clojure uberjar leiningen

5
推荐指数
2
解决办法
2255
查看次数

标签 统计

clojure ×2

leiningen ×2

jar ×1

resources ×1

uberjar ×1