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
Deployment Clojure/Ring:如何将Clojure应用程序与我无法控制的java构建过程集成?_Deployment_Clojure_War_Amazon Elastic Beanstalk_Ring - Fatal编程技术网

Deployment Clojure/Ring:如何将Clojure应用程序与我无法控制的java构建过程集成?

Deployment Clojure/Ring:如何将Clojure应用程序与我无法控制的java构建过程集成?,deployment,clojure,war,amazon-elastic-beanstalk,ring,Deployment,Clojure,War,Amazon Elastic Beanstalk,Ring,我有一个独特的建设情况。我正在使用leinuberwar从我的环形应用程序构建一个war,并部署到beanstalk。这一切都很好。现在,我们需要将代码推送到svn repo,在那里他们将管理构建,而svn repo对clojure(仅java)一无所知。这是一个庞大的官僚组织,他们的构建过程已经就绪,因此让他们在服务器上安装lein目前是不可能的。我知道lein在引擎盖下使用maven,所以我知道这在理论上是可行的,但我仍然对这个过程的几个步骤表示怀疑 我在中经历了war构建过程,我看到的主要

我有一个独特的建设情况。我正在使用
leinuberwar
从我的环形应用程序构建一个war,并部署到beanstalk。这一切都很好。现在,我们需要将代码推送到svn repo,在那里他们将管理构建,而svn repo对clojure(仅java)一无所知。这是一个庞大的官僚组织,他们的构建过程已经就绪,因此让他们在服务器上安装
lein
目前是不可能的。我知道lein在引擎盖下使用maven,所以我知道这在理论上是可行的,但我仍然对这个过程的几个步骤表示怀疑

我在中经历了war构建过程,我看到的主要问题是servlet和侦听器类与web.xml一起生成。我觉得我可以提供执行此任务的java文件,但不清楚这些java文件将包含哪些内容,以及它们最终在项目结构中的位置。看看最终战争中生成的servlet.clj和listener.clj文件,它们看起来非常简单,可能已经有了这样的例子

我看到的另一大障碍是war进程在项目名称空间上调用
clojure.core/compile
,它从clojure源代码生成所有类文件。在从maven构建的过程中,是否有方法触发此编译?我几乎在想象一个java类将编译工作外包给clojure.core/compile,但我不确定从java调用clojure的具体细节,而不是从java调用clojure(通常的流程方向),也不确定如何将此步骤插入到基本的maven构建过程中

任何关于从何处开始的见解都将是最受欢迎的!谢谢大家。

请查看。您可以在子项目的
pom.xml
中将其指定为插件,然后它将填充与javac插件在项目其余部分相同的卷。您项目之外的任何人都不需要知道Clojure的存在

查看


org.cloudjust.plugin
梓
0.5.5
默认编译
编译
**/test.clj

您可能对我的名为ring java servlet的库感兴趣

它提供的是一个已经由AOT编译的通用servlet类,然后可以在web.xml中声明为常规servlet。它需要常规的servlet init参数来声明处理程序的名称空间和var名称,servlet服务调用必须委托给该处理程序


或者你可以看看

亚瑟:说真的,你应该开办一所Clojure学校,或者至少写一本Clojure实习书。告诉构建团队你的要求是什么。他们可能会让你大吃一惊相信我我试过了。我没有遇到阻力,只是声称没有人真正有能力改变它!官僚主义是一种疾病……我在工作中也做过同样的事情。简单的JavaServlet+.clj文件作为资源,而现有的构建基础设施也不明智。
 <build>
  <plugins>
    <plugin>
      <groupId>org.cloudhoist.plugin</groupId>
      <artifactId>zi</artifactId>
      <version>0.5.5</version>
      <executions>
        <execution>
          <id>default-compile</id>
          <goals>
            <goal>compile</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <excludes>
          <exclude>**/test.clj</exclude>
        </excludes>
      </configuration>
    </plugin>
  </plugins>
</build>