我有一个独特的构建情况。我正在使用lein uberwar
我的环应用程序构建战争并部署到 beanstalk。这一切都很好。现在出现了一个要求,我们需要将代码推送到一个 svn 存储库,在那里他们将管理构建,它对 clojure(仅 java)一无所知。这是一个庞大的官僚组织,他们的构建过程已经到位,所以让他们安装lein
在他们的服务器上目前是不可能的。我知道 lein 在引擎盖下使用了 maven,所以我知道这在理论上可行,但我仍然对这个过程的几个步骤持怀疑态度。
我经历了lein-ring中的战争构建过程,我看到的主要问题是生成了 servlet 和 listener 类,以及 web.xml。我觉得我可以提供执行此任务的 java 文件,但不清楚这些 java 文件将包含什么以及它们最终将存在于项目结构中的什么位置。查看最终战争中生成的 servlet.clj 和 listener.clj 文件,它们看起来非常简单,可能已经存在这方面的示例?
我看到的另一个大障碍是战争进程调用clojure.core/compile
了项目命名空间,它从 clojure 源生成所有类文件。在从 maven 构建期间是否有某种方法可以触发此编译?我几乎在想象一个 java 类,它将编译外包给 clojure.core/compile,但我不确定从 java 调用 clojure 的来龙去脉,而不是反之亦然(通常的流动方向),或者如何插入这一步进入一个基本的 Maven 构建过程。
任何关于从哪里开始的见解都将受到欢迎!谢谢大家。