Clojure Noir uberjar仅在构建目录中工作
我正在尝试使用clojure web framework noir发布一个小型web应用程序构建。在运行时使用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
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)?