當前位置:首頁 » 網頁前端 » jenkins腳本報錯
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

jenkins腳本報錯

發布時間: 2022-11-28 11:55:03

❶ Jenkins打包iOS報plicate錯誤的正確解決辦法

好久沒有寫博客,最近一直在使用Jenkins對iOS和Android打包,多多少少遇到一些問題,這里暫時先記錄打包iOS報plicate的錯誤;

主要分為以下兩種情況:

其實有些人在打包的時候經常會見到類似於下面這種錯誤

然後大家就開始網路諸如這樣的錯誤解決方案, 我也是如此。
但是這並不能高效的解決遇到的問題(稍後再說),還有可能引起其它問題的產生,所以一定要詳細的去看報錯信息。

在這句話的上面看到

再往上面看的話,就會看到

很明顯, 這兩個框架下有相同命名(BundleHelper)的類,
後來找到的相應的SDK開發人員,確認不小心命名相同,改正即可。

細心的人如果再往上看的話,就會發現

一些重復報錯loog, 經過溝通發現,兩個SDK都要用到libWeChatSDK.a,而其中一個sdk已經將.a打包進去,另外一個sdk需要導入.a使用,因此重復。最好的解決辦法就是:把libWeChatSDK.a抽離出來,以免以後還會有其它sdk使用。

這種plicate是:第三方庫和系統庫 之間的沖突,網上也有人問過 有人問過 ,但是沒人解決。

說起來這個錯誤,可能還要源於第一種情況,為了解決第一種情況,試盡了網上所有的辦法, 卻不想又產生這個問題,所以大家在解決問題的時候一定要注意自己修改了什麼,最關鍵的是弄清楚問題的本質。

就像這個問題本質就是:」兩個靜態庫內有沖突「
網路一下解決方案一大堆,而且都是大同小異,這里 感謝這個博主的文章

推薦大家用這種方法解決:
刪除掉 Other Linker Flag 的 -all_load 就可以解決靜態庫沖突的問題
使用抽離合並在生成.a的方法太麻煩。

ps:剛接觸Jenkins,不喜勿噴。

❷ jenkins執行python腳本問題

一般有三種方法:
1.安裝執行python的插件:Python Plugin,安裝後在配置那裡就可以看到以下的選項,可以在Script部分直接寫python代碼

❸ Jenkins報錯Error cloning remote repo 'origin'

輸出 ERROR: Error cloning remote repo 'origin'

這行報錯只能說明是git有問題,其他沒什麼有用的信息。
瀏覽器中 Ctrl+F 查找 ERROR ,提示No such file or directory。懷疑git路徑設置有問題

Jenkins配置git的絕對路徑
系統管理--->全局工具管理--->git
重新構建問題還是沒解決

Jenkins配置了2個節點,但是只有master安裝了git,很有可能任務被調到slave上執行所以報錯

Jenkins--->node--->構建歷史 看到之前的任務都在此節點,此節點又沒有安裝Jenkins所以報錯

❹ jenkins構建項目的錯誤和原因及其解決方法

我們項目開發完之後需要構建項目發布上線時,通常會使用到jenkins構建工具,然後在使用jenkins工具構建項目時通常也會遇到一些構建錯誤問題,通常情況下,如果項目在自己本地打包時沒有問題,啟動服務時也沒有問題的情況下,可能是jenkins配置問題,需要開發人員配合本地配置項的修改完成,下面我給大家分享一下我遇到的一些構建失敗問題,注意:本篇文章講的主要是關於前端項目的構建失敗問題。

Umi自動化工程創建的react項目

從圖一中可以看出,是構建時打包命令出錯,使用了不能識別的 npm run build:prod ,該命令是前端工程項目中 package.json 包文件中的 scripts 中配置的,該案例中前端並沒有配置build:prod 這個打包命令,如圖:

這里有兩種解決辦法。

直接去jenkins 上將打包命令配置成前端包文件種配置的命令,本案例中因為沒有區分不同的開發環境,而且項目也只有master一個主分支,沒有使用環境變數來區分不同環境的打包命令,所以圖一中的問題,可以直接將jenkins裡面的打包命令配置成圖二中的打包命令 npm run build。去到jenkins 工具中,找到對應的配置項,如圖:

如果項目變得復雜,需要進行嚴格的環境區分,那麼這種情況下建議使用第二種方法,使用環境變數區分不同環境的打包命令,具體步驟如下:

去到前端項目在項目根目錄下找到包文件package.json文件,打開後,在scripts下面配置build:prod 的打包命令,如圖:

去到前端項目中的配置文件config.js中配置 APP_ENV環境變數來區分不同的環境,例如生產環境,開發環境,測試環境等,配置如下:

本文中暫時講到圖一中這種jenkins構建失敗的現象以及導致失敗的原因和針對其不同的兩種解決方法,後續再碰到其它失敗現象再補充,或者大家也可以在評論區回復各自遇到的失敗情況,歡迎留言。

❺ jenkins啟動報錯解決方案

啟動jenkins報錯: Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.

按提示輸入systemctl status jenkins.service

看到原因是因為

最後想起來問題出在我重裝了JDK, java地址變了

解決方法:
1> 查看當前Java的環境變數 echo $JAVA_HOME
2> 復制Java的環境變數地址, 編輯/etc/init.d/jenkins文件, 指定位置添加該地址, 後綴附上/bin/java vim /etc/init.d/jenkins

修改後重啟jenkins服務, 問題解決 systemctl start jenkins

❻ 解決Jenkinsfile執行sh 報Warning: JENKINS-41339 probably bogus

執行以下pipeline時,報錯!
Warning: JENKINS-41339 probably bogus PATH=$PATH:/usr/share/maven/bin:/usr/share/maven/bin; perhaps you meant to use 『PATH+EXTRA=/something/bin』?

解決方式一:
採用environment {
PATH = "PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin"
}方式

解決方式二:
採用:withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin']) {
}方式配置

解決方式三:
通過轉到Manage Jenkins-> Configure System並刪除PATH全局屬性。
去掉全局環境配置,但會造成其他問題;
一些自由風格的環境會因此破壞。

[推薦]解決方法四:
通過轉到Manage Jenkins-> Configure System並配置PATH全局屬性。
環境變數配置:
鍵: M2_HOME 值: /usr/local/maven
鍵: NODE_HOME 值: /usr/local/node
鍵: ... 值: ...
鍵: PATH+EXTRA 值: $PATH:$M2_HOME/bin:$NODE_HOME/bin

PS:關鍵配置,環境鍵變數變為: PATH+EXTRA 而不是 PATH
最終配置如下圖:

完成以上配置後: java -version、mvn -v、node -v都將可用;
而且自由風格的項目也不會受影響。

❼ Jenkins打包報錯:(No such file or directory) and 'parent.relativePath' points at no local POM

Jenkins打包報錯:(No such file or directory) and 'parent.relativePath' points at no local POM

可能是因為maven配置修改了本地倉庫的路徑,而jenkins沒有該路徑的操作許可權,需要修改一下路徑的許可權即可:

❽ Jenkins構建執行Python腳本報錯文件不存在

這個可能是在操作的過程中其中一個步驟弄錯了。

❾ jenkins執行shell腳本,使用scp免密傳輸失敗問題

問題:Jenkins默認使用jenkins用戶去啟動,jenkins用戶並沒有許可權去執行ssh免密登陸,所以導致執行失敗

註:配置linux雙機互信後,jenkins也需要將公鑰加入到目標機器,才能達到shell腳本中scp免密傳輸的條件

一、驗證登錄

1、切換jenkins用戶

# su jenkins

切換後還是root賬號

2、分析解決:

2.1 應該是/etc/passwd文件中的/bin/bash被yum安裝的時候變成了/bin/false

# vim /etc/passwd

jenkins:x:990:988:Jenkins Automation Server:/var/lib/jenkins:/bin/false( bash)

將bin/false改為/bin/bash

再次執行切換

# su jenkins

bash-4.1$

2.2  結果命令提示符的用戶名不是jenkins而變成了 bash-4.1$,原因是在安裝jenkins時,jenkins只是創建了jenkins用戶,並沒有為其創建home目錄

# vim ~/.bash_profile

在文件的最後添加 export PS1='[\u@\h \W]\$',執行文件使修改項起作用

# source ~/.bash_profile

驗證是否成功   # su jenkins

二、為jenkins系統用戶開啟免密登錄

1、在Jenkins的使用過程中,如果在腳本中使用到sudo命令,有可能出現如下所示的錯誤:

sudo: no tty present and no askpass program specified

這是因為Jenkins伺服器在執行sudo命令時的上下文有誤,導致這個命令執行的異常。

2.1 解決方法:

# sudo visudo

在文件末尾加上jenkins ALL=(ALL) NOPASSWD: ALL

2.2 重啟jenkins,測試

# su jenkins

# sudo su -s /bin/bash jenkins

測試成功,jenkins免密登錄成功。

PS:如果誤操作修改了/etc/sudoers的許可權來修改上述文件,則會導致如下所示的錯誤:

sudo :/etc/sudoers is world writable

sudo : no valid sudoers source found, quitting

sudo : unable to initialize poling plugin

這是Linux的一種保護機制。因此,如果出現上述誤操作,則需要執行如下命令來解決:

$ pkexec chmod 0440 /etc/sudoers

三、jenkins用戶開通ssh免密登錄

1、安裝ssh

# yum install ssh

1.1 將ssh服務設置開機自啟

# sudo systemctl enable sshd

1.2 啟動ssh

# sudo systemctl start sshd

2、生成jenkins用戶秘鑰證書

# su jenkins

# ssh-keygen -t rsa

2.1 查看是否生成成功

# /var/lib/jenkins/.ssh/

# ls

3、將公鑰傳輸到目標linux系統

ssh--id -i /var/lib/jenkins/.ssh/id_rsa.pub root@目標ip:path

------------------------------------------------------------------------------------------

參考:https://blog.csdn.net/weixin_43840640/article/details/90371472

❿ Android 使用Jenkins自動化打包報錯

軟體環境

Window  7 x64

Jenkins jenkins-2.121.2

Tomcat 9.0.8

Android studio 3.1.2 

Java JDK 1.8 

Gradle 4.4   

報錯信息:

C:\Windows\System32\config\systemprofile\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.0.2.aar\\res\color\abc_secondary_text_material_dark.xml: error: file not found.C:\Windows\System32\config\systemprofile\.gradle\caches\transforms-1\files-1.1\picture_library-v2.0.1.aar\\res\drawable\btn_left_true.xml: error: file not found.Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details: app:mergeGooglePlayDebugResources FAILEDFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:mergeGooglePlayDebugResources'.> Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

解決方法:

設置環境變數: GRADLE_USER_HOME    c:/gradle-cache

或者    gradle assembleDebug -g C:\gradle-cache