❶ 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