Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure Noir uberjar仅在构建目录中工作_Clojure_Leiningen_Noir - Fatal编程技术网

Clojure Noir uberjar仅在构建目录中工作

Clojure Noir uberjar仅在构建目录中工作,clojure,leiningen,noir,Clojure,Leiningen,Noir,我正在尝试使用clojure web framework noir发布一个小型web应用程序构建。在运行时使用lein run可以正常工作。当我运行leinuberjar然后运行java-jarproject-1.0.0-standalone.jar时,它会按预期工作。但是,如果我移动jar文件(project-1.0.0-standalone.jar),它会运行,但每个页面都会生成404。我的project.clj是由leinnoir new生成的默认值,除了我添加了:省略source tru

我正在尝试使用clojure web framework noir发布一个小型web应用程序构建。在运行时使用
lein run
可以正常工作。当我运行
leinuberjar
然后运行
java-jarproject-1.0.0-standalone.jar
时,它会按预期工作。但是,如果我移动jar文件(project-1.0.0-standalone.jar),它会运行,但每个页面都会生成404。我的
project.clj
是由
leinnoir new
生成的默认值,除了我添加了
:省略source true
:aot:all

我正在使用:

莱宁根1.7.1

clojure 1.2.1

黑色1.2.1


如何制作一个可以分发给其他人而无需源代码的jar?

如果您尚未向命名空间定义添加
gen class
调用,添加它们可能会解决此问题。您可以通过运行

  lein clean
  lein compile

确保您看到每个类都在构建中

我相信您遇到的问题是因为noir.server/load-views需要名称空间的方式。如果将其从目标/目录中移动,它将无法再找到传递到加载视图中的视图目录

解决方法是明确要求所有视图,而不是使用load views函数。那么您应该可以在任何地方运行uberjar。

当我将jar文件移动到另一个位置(在同一台计算机上)时,为什么它不工作(每个页面返回404)?