本篇內容主要講解“SonarQube出現"Not inside a git worktree" 怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“SonarQube出現"Not inside a git worktree" 怎么解決”吧!
設置參數 -Dsonar.scm.disabled=true
為了實施新增代碼質量門禁,需要使用SonarQube對一個maven工程的代碼進行分析。過程中報錯,信息里有關鍵字"Not inside a git worktree"。
那個目錄確實不是一個git worktree,但是,要配合teamcity的原因,我也沒辦法給整個git worktree目錄。
Google搜索上面的關鍵字,第一個結果就是解決這問題的,說要設置sonar.projectBaseDir和sonar.sources。顯然,設置了之后問題依然存在。
另一個maven工程執行sonar掃描沒出問題,于是對比了一下兩個工程設置的不同。
出錯的工程是一個早期SpringBoot工程,父pom是SpringBoot。正確的工程父pom是我們自己的,里面進行了sonar配置。
過了一遍我們自己的父pom里sonar相關配置,把自己感覺可能有影響的配置都加到命令行里,還是沒能解決問題。
沒招了,mvn命令里加上-X,對比出錯的日志和正常的日志。
終于有所發現,出錯的日志開始報錯的地方,正常的日志里輸出了一句debug:“File exclusion based on SCM ignore information is not available with this plugin”。
SCM ignore了所以正常跑,沒ignore就報"Not inside a git worktree"。
emmm,008表示這很符合邏輯。
Goolge sonar SCM File exclusion,找到了 -Dsonar.scm.exclusions.disabled=true
設置上去,開始執行,果然有效……之前開始執行就報錯,加上之后跑了三分鐘還沒出錯。雖然沒跑出結果,迫不及待的開始宣布自己解決了問題。
然后,慘招打臉:跑了一段時間還是出錯了,又是"Not inside a git worktree"。
繼續看日志,報錯之前輸出日志“SCM Publisher SCM provider for this project is: git”。
這SCM provider是啥?怎么disable?
Google sonar scm provider disable,第一條就是答案:-Dsonar.scm.disabled=true。
問題解決
到此,相信大家對“SonarQube出現"Not inside a git worktree" 怎么解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。