如何将多个Clojure Web(Compojure)应用程序合并为一个?
我已经将一个业务解决方案分解为多个较小的web应用程序,并使用Lein Compjure插件创建了这些较小的web应用程序(这使得开发速度更快)。我现在正试图通过创建一个新的lein compojure项目并将较小的web应用程序添加为依赖项,将这些web应用程序合并到一个web应用程序中,称之为unifiedapp。我将在unifiedapp中创建适当的应用程序路由,以便从较小的web应用程序调用正确的处理程序 我面临的问题是,lein没有将war文件作为依赖项,当我尝试为lein compojure项目(小型web应用程序)创建一个简单的jar文件时,它失败了 编辑:project.clj(由lein new compojure hello world生成) 当我运行lein jar安装时,我得到以下消息: 警告:jar中不存在指定的主类。它可能无法按预期执行。包含主方法的命名空间中可能缺少gen Class指令,或者命名空间尚未进行AOT编译如何将多个Clojure Web(Compojure)应用程序合并为一个?,clojure,leiningen,compojure,Clojure,Leiningen,Compojure,我已经将一个业务解决方案分解为多个较小的web应用程序,并使用Lein Compjure插件创建了这些较小的web应用程序(这使得开发速度更快)。我现在正试图通过创建一个新的lein compojure项目并将较小的web应用程序添加为依赖项,将这些web应用程序合并到一个web应用程序中,称之为unifiedapp。我将在unifiedapp中创建适当的应用程序路由,以便从较小的web应用程序调用正确的处理程序 我面临的问题是,lein没有将war文件作为依赖项,当我尝试为lein compo
我确实在目标文件夹中看到了一个jar文件,但由于某些原因,它没有将jar文件复制到
.m2\repository
。因此,试图包含此jar的父web应用程序(此web应用程序的路由)无法看到它。感谢Alan的回复,我改变了方法。我没有合并源代码,因为我修改了主web应用程序的project.cj文件以包括
子/子应用程序使用的源和资源
(defproject mainwebapp "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:min-lein-version "2.0.0"
:dependencies [[org.clojure/clojure "1.8.0"]
[compojure "1.5.1"]
[ring/ring-defaults "0.2.1"]]
:source-paths ["../app1/src" "../app2/src" "../app3/src" "src"]
:resource-paths ["../app1/resources" "../app2/resources" "../app3/resources" ]
:plugins [[lein-ring "0.9.7"]]
:ring {:handler mainwebapp.handler/app}
:profiles
{:dev {:dependencies [[javax.servlet/servlet-api "2.5"]
[ring/ring-mock "0.3.0"]]}})
多亏了Alan的回复,我改变了方法。我没有合并源代码,而是修改了主web应用程序的project.cj文件以包括 子/子应用程序使用的源和资源
(defproject mainwebapp "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:min-lein-version "2.0.0"
:dependencies [[org.clojure/clojure "1.8.0"]
[compojure "1.5.1"]
[ring/ring-defaults "0.2.1"]]
:source-paths ["../app1/src" "../app2/src" "../app3/src" "src"]
:resource-paths ["../app1/resources" "../app2/resources" "../app3/resources" ]
:plugins [[lein-ring "0.9.7"]]
:ring {:handler mainwebapp.handler/app}
:profiles
{:dev {:dependencies [[javax.servlet/servlet-api "2.5"]
[ring/ring-mock "0.3.0"]]}})
为什么为您的compojure应用程序创建jar文件听起来像是这个问题的一个重要部分,您是否可以包括输出以及尽可能多的project.clj文件(同时尊重您的保密要求)我只想将源代码合并到一个新的lein项目中。你不想这样做有什么原因吗?@Alan Thompson,这个小型web应用程序很容易维护、开发、测试和调试。我不想放弃灵活性。为什么为你的compojure应用程序创建jar文件听起来是这个问题的一个重要部分,您是否可以包括输出和尽可能多的project.clj文件(同时遵守您的保密要求)我会把源代码合并到一个新的lein项目中。你有什么理由不想这样做吗?@Alan Thompson,这个小型web应用程序非常容易维护、开发、测试和调试。我不想放弃灵活性。