使用 leiningen 和 jenkins 构建简单的 clojure web 项目
Build simple clojure webproject with leiningen and jenkins
我有一个基于 clojure 的简单 Web 项目,它只包含资源文件夹中的一些降价文件。以前我运行它用
cd my-project
lein ring server
然后我在 http://localhost:port 的浏览器中查看了 运行 项目。
现在我想将这个过程与 jenkins 集成,所以我
- 在本地(在 eclipse 中)创建了一个 clojure 项目
- 为我的 jenkins 添加了 leiningen 支持(在配置中添加 leiningen-standalone.jar 的路径)
- 在 jenkins 作业配置中添加了构建步骤 'build project using leiningen'
- 使用 jenkins 从 SCM 检出并构建项目
但是,Jenkins 总是抱怨
> java -client -XX:+TieredCompilation
> -Xbootclasspath/a:/home/.lein/self-installs/clojure-1.8.0.jar
> -Dfile.encoding=UTF-8
> -Dmaven.wagon.http.ssl.easy=false
> -Dleiningen.original.pwd=/var/lib/jenkins/jobs/my-project/workspace
> -cp /home/.lein/self-installs/clojure-1.8.0.jar clojure.main -m leiningen.core.main install
>
> Error: Could not find or load main class clojure.main
> Build step 'Build project using leiningen' marked build as failure
我假设,jenkins 缺少 clojure.jar 并且它没有将它安装到 .m2 存储库,所以我手动将它添加到
/var/lib/jenkins/.m2/repository/org/clojure/clojure/1.8.0/clojure-1.8.0.jar
但这不会改变构建的任何内容。
如何告诉 jenkins 在哪里可以找到 clojure.main?任何提示,我错过了什么?
您是否已将 clojure 添加为 project.clj 的依赖项?
:dependencies [[org.clojure/clojure "1.8.0"]]
tl;dr - 检查权限
当您为 Jenkins 设置 leiningen+plugin 时,请确保 jenkins 所在的服务帐户 运行 是所有者并且有权访问 leiningen-standalone.jar
在我的例子中,我在 /var/lib/jenkins/.lein
安装了 leiningen,这是 jenkins 安装的默认设置,并将所有者更改为 jenkins:jenkins
我有一个基于 clojure 的简单 Web 项目,它只包含资源文件夹中的一些降价文件。以前我运行它用
cd my-project
lein ring server
然后我在 http://localhost:port 的浏览器中查看了 运行 项目。
现在我想将这个过程与 jenkins 集成,所以我
- 在本地(在 eclipse 中)创建了一个 clojure 项目
- 为我的 jenkins 添加了 leiningen 支持(在配置中添加 leiningen-standalone.jar 的路径)
- 在 jenkins 作业配置中添加了构建步骤 'build project using leiningen'
- 使用 jenkins 从 SCM 检出并构建项目
但是,Jenkins 总是抱怨
> java -client -XX:+TieredCompilation
> -Xbootclasspath/a:/home/.lein/self-installs/clojure-1.8.0.jar
> -Dfile.encoding=UTF-8
> -Dmaven.wagon.http.ssl.easy=false
> -Dleiningen.original.pwd=/var/lib/jenkins/jobs/my-project/workspace
> -cp /home/.lein/self-installs/clojure-1.8.0.jar clojure.main -m leiningen.core.main install
>
> Error: Could not find or load main class clojure.main
> Build step 'Build project using leiningen' marked build as failure
我假设,jenkins 缺少 clojure.jar 并且它没有将它安装到 .m2 存储库,所以我手动将它添加到
/var/lib/jenkins/.m2/repository/org/clojure/clojure/1.8.0/clojure-1.8.0.jar
但这不会改变构建的任何内容。
如何告诉 jenkins 在哪里可以找到 clojure.main?任何提示,我错过了什么?
您是否已将 clojure 添加为 project.clj 的依赖项?
:dependencies [[org.clojure/clojure "1.8.0"]]
tl;dr - 检查权限
当您为 Jenkins 设置 leiningen+plugin 时,请确保 jenkins 所在的服务帐户 运行 是所有者并且有权访问 leiningen-standalone.jar
在我的例子中,我在 /var/lib/jenkins/.lein
安装了 leiningen,这是 jenkins 安装的默认设置,并将所有者更改为 jenkins:jenkins