2012-10-28 21 views
4

我正在嘗試使用clojure web框架noir發佈一個小型web應用程序構建。它在按lein run運行時按預期工作。當我運行lein uberjar,然後java -jar project-1.0.0-standalone.jar它按預期工作。但是,如果我移動jar文件(project-1.0.0-standalone.jar),它會運行,但每個頁面的結果都是404.我的project.clj是由lein noir new生成的默認值,但我添加了:omit-source true:aot :allNoir uberjar只能在構建目錄中工作

我使用:

leiningen 1.7.1

的Clojure 1.2.1

比諾1.2.1

我怎樣才能使可分配給其他人沒有一個罐子資源?

+0

什麼問題? – alestanis

+0

當我將jar文件移動到另一個位置(在同一臺計算機上)時,爲什麼它不起作用(每個頁面返回404)? – user1781292

回答

0

如果您尚未將gen-class調用添加到您的名稱空間定義中,則添加它們可能會解決此問題。您可以通過運行

lein clean 
    lein compile 

測試此並確保你看到的每個類的在建

+0

lein compile顯示我正在構建的所有.clj文件 – user1781292

0

我相信你所遇到的問題是由於的方式noir.server /負載意見要求命名空間。如果您將其從目標/目錄中移出,它將無法再找到您傳入負載視圖的視圖目錄。

解決方法是明確要求所有視圖代替使用load-views函數。那麼你應該可以在任何地方運行uberjar。

相關問題