Java 是否有可靠的Clojure连续集成选项?

Java 是否有可靠的Clojure连续集成选项?,java,ant,maven,clojure,continuous-integration,Java,Ant,Maven,Clojure,Continuous Integration,我正在尝试将clojure集成到一个连续构建中。对于像Jenkins这样的支持clojure的系统有什么建议吗?它可以通过插件为我完成这项工作?我看过一些特别的教程,但不确定是否有一个明确的可接受的方法。我注意到clojure本身是使用CI构建的,因为它是java方言,我假设如果没有这样的选项,然后,也许我可以将clojure构建包装为maven/ant任务……您希望在ant/maven/gradle等中完成所有工作,因为您希望能够轻松地在本地以及CI系统上构建项目。一旦您可以使用一个著名的构建

我正在尝试将clojure集成到一个连续构建中。对于像Jenkins这样的支持clojure的系统有什么建议吗?它可以通过插件为我完成这项工作?我看过一些特别的教程,但不确定是否有一个明确的可接受的方法。我注意到clojure本身是使用CI构建的,因为它是java方言,我假设如果没有这样的选项,然后,也许我可以将clojure构建包装为maven/ant任务……

您希望在ant/maven/gradle等中完成所有工作,因为您希望能够轻松地在本地以及CI系统上构建项目。一旦您可以使用一个著名的构建框架在本地构建,您只需在Jenkins中调用相同的任务/目标,这一点非常简单,因为Jenkins可以很好地与大多数构建框架(如ant/maven/gradle)集成

虽然Jenkins/Hudson在Clojure项目中使用最广泛,但您可以使用任何您喜欢的CI系统

Clojure本身、所有contrib项目和各种开源项目都使用Maven来驱动构建,因此可以相对轻松地提升到Hudson/Jenkins中。是你想要的镜像这样的设置

您也可以使用Hudson/Jenkins(或任何其他CI系统),只需根据需要发送到
lein
。有一种聪明的方法可以通过詹金斯自己来建立这个系统


最后,如果您需要ant,您可以使用。

作为数据点,我使用:

  • Maven构建polyglot Clojure+Java项目
  • GitHub用于SCM
  • Travis CI用于基于GitHub源的持续集成
重要的一点是,通过使构建与Maven协同工作,您可以非常轻松地连接到标准的基于Java的CI工具生态系统中。就Travis CI而言,它只是另一个Java项目,从构建过程的角度来看,Clojure被有效地视为一个额外的Java库。下面是
travis.yml
config:

language: java
jdk:
  - oraclejdk7
  - openjdk7
  - openjdk6
下面是一个使用这种方法的开源项目示例:


    • Lambda CD可能是您想要的。它允许您在clojure中编写构建和交付管道。它相对较新,似乎越来越受欢迎。

      再次投票给詹金斯;我在Leiningen中使用它非常成功,只使用了一个基本的shell命令。上面的链接是一种方法,但是简单地通过apt安装leiningen而不是单独的CI作业并没有什么错。@Chas,“有点聪明的方法”的链接断了。您有什么理由不再推荐货盘吗?(我找到了这个链接:)所以。。。。雷宁安是直接建设的一个选择吗?你是在建议我用maven/ant/gradleAnt包装Leiningan,maven、Gradle和Leiningen是对等的,后者可以(并且是)一直独立于其他人使用。它是否满足您的需求是一个独立的问题(例如,leiningen没有像Maven那样明确的发布概念,但是ant和gradle也没有)。在任何情况下,人们总是从他们的主要工具中调用其他构建工具,因此ant的maven任务、maven antrun插件等等。Leiningen实际上是在maven ant任务的基础上构建的,因此有多个级别的海龟。:-)