使用 leiningen 和 jenkins 构建简单的 clojure webproject

ulr*_*ich 5 java ubuntu clojure leiningen jenkins

我有一个基于 clojure 的简单 web 项目,它只在资源文件夹中包含一些降价文件。以前我用

cd my-project
lein ring server
Run Code Online (Sandbox Code Playgroud)

然后我在浏览器中查看了正在运行的项目http://localhost:port

现在我想将这个过程与 jenkins 集成,所以我

  • 在本地创建了一个 clojure 项目(在 eclipse 中)
  • 为我的 jenkins 添加了 leiningen 支持(在配置中添加 leiningen-standalone.jar 的路径)
  • 在 jenkins 作业配置中添加了构建步骤“使用 leiningen 构建项目”
  • 使用 jenkins 从 SCM 结帐并构建项目

但随后,詹金斯总是抱怨

> 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
Run Code Online (Sandbox Code Playgroud)

我假设 jenkins 缺少 clojure.jar 并且它没有将它安装到 .m2 存储库,所以我手动将它添加到

/var/lib/jenkins/.m2/repository/org/clojure/clojure/1.8.0/clojure-1.8.0.jar
Run Code Online (Sandbox Code Playgroud)

但这不会改变构建的任何内容。

如何告诉詹金斯在哪里可以找到 clojure.main?任何提示,我缺少什么?

Sco*_*ott 4

tl;dr - 检查权限

当您为 Jenkins 设置leiningen+plugin时,请确保运行jenkins的服务帐户是所有者并且拥有leiningen-standalone.jar的权限

就我而言,我安装了 leiningen,/var/lib/jenkins/.lein这是 jenkins 安装的默认值,并将所有者更改为jenkins:jenkins