构建 Clojure 项目
本指南涵盖的内容 #
有关语言版本和其他构建环境特定信息,请访问我们的参考页面
本指南涵盖了特定于 Clojure 项目的构建环境和配置主题。请务必首先阅读我们的 教程 和 通用构建配置 指南。
macOS 环境中不提供 Clojure 构建。
Clojure 项目的 CI 环境 #
Travis CI 环境为 JVM 语言提供了一套丰富的构建工具,包括 多个 JDK、Ant、Gradle、Maven 以及 Leiningen 1.7.x 和 2.4.x(默认)。
依赖项管理 #
如果您使用 Leiningen,它会自动安装 project.clj
文件中列出的任何依赖项。
备用安装步骤 #
如果您需要在测试运行之前安装其他依赖项,则应在 project.clj
中设置正确的 :hooks
。
如果由于某种原因您无法使用钩子,则可以在 .travis.yml
中覆盖安装步骤
install: lein protobuf install
请参阅 构建配置指南 以了解更多信息。
构建脚本 #
使用 Midje #
如果您的项目使用 Midje,请确保 lein-midje 位于 project.clj
开发依赖项列表中,并在 .travis.yml
中覆盖 script:
以运行 Midje 任务
script: lein midje
对于 Leiningen 1,请将 :dev-dependencies
添加到 project.clj
:dev-dependencies [[midje "1.4.0"]
[lein-midje "1.0.10"]])
Leiningen 2 使用配置文件替换了 :dev-dependencies
:profiles {:dev {:dependencies [[midje "1.6.3"]]
:plugins [[lein-midje "3.0.0"]]}}
请注意,对于仅支持 Clojure 1.3.0 及更高版本的项目,您可能需要在 project.clj 中为 Midje 排除瞬态 org.clojure/clojure
:dev-dependencies [[midje "1.4.0" :exclusions [org.clojure/clojure]]
[lein-midje "1.0.10"]])
有关实际示例,请参阅 Knockbox。
在 Travis CI 上使用 Speclj #
如果您的项目使用 Speclj,请确保它在 project.clj
中的开发依赖项中列出,并在 .travis.yml
中包含此 script:
行
script: lein spec
对于 Leiningen 1,Speclj 应在 project.clj
中的 :dev-dependencies
下列出
:dev-dependencies [[speclj "3.3.1"]]
Leiningen 2 使用配置文件替换了 :dev-dependencies
:profiles {:dev {:dependencies [[speclj "3.3.1"]]}}
使用 Leiningen 1 #
Leiningen 1 与 2.4.x 并排提供。要使用它,请在 .travis.yml
中指定 lein
键
lein: lein1
如果您需要在 before_script
、install:
、script:
命令等中使用 lein
二进制文件,请使用 lein1
before_install:
- lein1 bootstrap
构建配置参考 #
您可以在我们的 Travis CI 构建配置参考 中找到有关 Clojure 的构建配置格式的更多信息。
任务链需要使用 do
任务
script: lein1 do javac, test
针对多个 JDK 进行测试 #
与任何 JVM 语言一样,也可以 针对多个 JDK 进行测试。
示例 #
针对多个 Clojure 版本进行测试 #
使用 Leiningen 1 #
Leiningen 有一个名为 lein-multi 的出色插件,可让您轻松地针对多个 Clojure 版本(例如,1.3、1.4 和最新开发版本的 alpha/beta/快照)进行测试。由于 leiningen 可以针对任何版本的 Clojure 运行测试(不一定与 Leiningen 本身使用的版本相同),因此无需使用 Clojure 的运行时切换器(如 RVM)。
要在 Travis CI 上使用 lein-multi,请将其添加到 project.clj 中的 :plugins
(请注意,此功能仅在 Leiningen 1.7.0 及更高版本中可用),并将 script:
覆盖为运行 lein multi test
而不是默认的 lein test
language: clojure
script: lein1 multi test
有关实际示例,请参阅 Monger。
使用 Leiningen 2 #
Leiningen 2 具有一个核心功能来替换 lein-multi
:配置文件。要针对多个配置文件(以及多个依赖项集或 Clojure 版本)运行测试,请使用 lein with-profile
命令,如下所示
lein: lein
script: lein with-profile dev:1.4 test
其中 dev:1.4
是要针对其运行 test
任务的配置文件的冒号分隔列表。使用 lein profiles
列出项目的配置文件,并使用 lein help with-profile
了解有关 with-profiles
任务的更多信息。
使用更新版本的 Leiningen #
如果您的 Clojure 项目需要更新版本的 Leiningen,您可以使用以下命令指定它:
language: clojure
lein: 2.6.1 # version 2 and up
如果未预安装指定版本的 Leiningen,则该作业将安装该版本,然后继续安装项目的依赖项。
示例 #
有关实际示例,请参阅 Neocons。