全新的Luminus应用程序给出错误:无法找到或加载主类clojure.main

pup*_*eno 3 clojure heroku procfile luminus

我刚刚通过运行创建了一个Luminus应用程序:

lein new luminus foobar
Run Code Online (Sandbox Code Playgroud)

当我尝试像工头一样运行它时:

foreman start
Run Code Online (Sandbox Code Playgroud)

文档描述的方式,我得到这个错误:

Error: Could not find or load main class clojure.main
Run Code Online (Sandbox Code Playgroud)

这也是我从Heroku得到的同样的错误.模板创建的Procfile包含:

web: java $JVM_OPTS -cp target/foobar.jar clojure.main -m foobar.core
Run Code Online (Sandbox Code Playgroud)

发生了什么,我该如何解决?

小智 7

我最好的猜测是你需要使用命令构建项目lein uberjar.这个序列有效:

$ lein new luminus foobar
Retrieving ...
Generating a Luminus project.

$ cd foobar
$ lein uberjar
Retrieving ...
Compiling foobar.session
Compiling foobar.layout
Compiling foobar.handler
Compiling foobar.routes.home
Compiling foobar.core
Compiling foobar.middleware
Created /home/ba/foobar/target/foobar-0.1.0-SNAPSHOT.jar
Created /home/ba/foobar/target/foobar.jar

$ cat Procfile 
web: java $JVM_OPTS -cp target/foobar.jar clojure.main -m foobar.core

$ java $JVM_OPTS -cp target/foobar.jar clojure.main -m foobar.core
2015-Jun-22 06:30:42 -0400 ba INFO [foobar.handler] - 
-=[ foobar started successfully nil ]=-
2015-06-22 06:30:42.998:INFO:oejs.Server:jetty-7.x.y-SNAPSHOT
2015-06-22 06:30:43.028:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:3000
Run Code Online (Sandbox Code Playgroud)