[英]Building multi-module maven project for SonarCloud
我正在第一次為 SonarCloud 構建一個 X 數量模塊的 maven 項目。 sonar.projectKey
值需要是唯一的,所以我將它設置為${project.groupId}:{$project.artifactId}
,這樣它就會按模塊生成。 然后,運行 CI,這是響應消息:
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar (default-cli) on project ${project.groupId}:${project.artifactId}: Could not find a default branch to fall back on. -> [Help 1]
我懷疑這是因為我沒有在我的“組織”中使用該鍵創建項目,但問題是我有多個模塊。 事實上,我有 X 個。 我還應該為每個要掃描的模塊創建一個項目嗎? sonarqube 插件不應該處理嗎?
For those, who strugle to get sonarcloud.io working with github action for a java application managed through a maven multi-module project.
I have created a Spring Maven Multi-Module Project and wanted to be able to use sonar from sonarcloud.io during specific github action.
Github 項目: https://github.com/MagicSoup/SpringJOOQ
聲納雲項目: https://sonarcloud.io/dashboard?id=MagicSoup_SpringJOOQ
你可以在這里找到我的 Github 操作: https://github.com/MagicSoup/SpringJOOQ/blob/master/.github/workflows/maven-master.yml
sonar:
name: Test - SonarCloud Scan
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: SonarCloud Scan
run: mvn -B clean verify -Psonar -Dsonar.login=${{ secrets.SONAR_TOKEN }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
在我的根 pom.xml 內,聲納配置文件: https://github.com/MagicSoup/SpringJOOQ/blob/master/pom.Z0F635D0E0F3874FFF8B581C132E
<profile>
<id>sonar</id>
<properties>
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
<sonar.organization>magicsoup</sonar.organization>
<sonar.projectKey>MagicSoup_SpringJOOQ</sonar.projectKey>
<sonar.moduleKey>${project.groupId}:${project.artifactId}</sonar.moduleKey>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>${sonar.version}</version>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>sonar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
這里的重要信息是以下鍵:
如果沒有 le sonar.moduleKey 定義,我在多個具有相同密鑰的項目上遇到問題。
During the creation of the project in sonarcloud.io https://sonarcloud.io/projects/create by using the analyze github repository a message will be displayed that you should use another way than the automated one because it's doesn't work for java應用。 然后,您將選擇一個支持“maven,gradle,...”,您會發現需要在 maven pom.xml 中添加所有必需的屬性。 包括您應該在 github 中導出為秘密令牌的 sonar.login)。
您可以在此處創建您的秘密令牌: https://github.com/User/Project/settings/secrets您需要進行身份驗證並相應地更改用戶和項目。
關於這個主題的一篇很棒的文章: https://medium.com/faun/continuous-integration-of-java-project-with-github-actions-7a8a0e8246ef
似乎我的問題與此無關,但聲納雲中的 gitlab 導入器創建了一個項目,其密鑰與 gitlab 上的項目名稱匹配。 相反,您應該手動創建一個項目並在聲納雲中為其分配{groupId}:{artifactId}
名稱,以防止這種混淆。
出現錯誤消息是因為該鍵下沒有項目,因此聲納雲沒有默認值。
對我來說,我必須通過 go 進入項目的聲納雲管理設置,然后進入分析方法並關閉 SonarCloud 自動分析,因為我已經在通過我的 CI 運行分析。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.