我有一個簡單的基於clojure的web項目,它只是在資源文件夾中包含一些markdown文件。以前我用與leiningen和jenkins構建簡單的clojure webproject
cd my-project
lein ring server
運行它,然後我在http://localhost:port查看正在運行的項目在瀏覽器中。
現在,我想與詹金斯這個過程讓我
- 在本地創建一個Clojure的項目
- 添加leiningen支持整合(在Eclipse)我詹金斯(添加路徑leiningen-standalone.jar在配置)
- 添加在詹金斯的工作配置
- 使用詹金斯從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
我認爲,詹金斯缺少clojure.jar,它不是將其安裝到存儲庫的.m2,所以我手動添加它來
/var/lib/jenkins/.m2/repository/org/clojure/clojure/1.8.0/clojure-1.8.0.jar
但是這並沒有改變任何構建。
如何告訴jenkins在哪裏可以找到clojure.main?任何提示,我錯過了什麼?
東西配置不正確。它應該是這樣的'... -cp /var/lib/jenkins/.lein/self-installs/leiningen-standalone.jar clojure.main -m leiningen.core.main uberjar'注意leiningen jar而不是clojure jar 。 – Scott
你說得對。我用clojure瓶子而不是leiningen罐子來修理它。改變了這一點,並添加了uberjar任務。錯誤依然存在:'$ java -client -XX:+ TieredCompilation -Xbootclasspath/a:/home/.lein/self-installs/leiningen-2.6.1-standalone.jar -Dfile.encoding = UTF-8 -Dmaven.wagon .http.ssl.easy = false -Dleiningen.original.pwd =/var/lib/jenkins/jobs/leiningen-clojure-test/workspace -cp /home/.lein/self-installs/leiningen-2.6.1-standalone .jar clojure.main -m leiningen.core.main uberjar' – tareq
只是一個想法,但詹金斯服務帳戶有權'/ home/.lein'我記得當我設置它時,我專門將它放在'/ var/lib/jenkins',不得不改變主人 – Scott