一般的maven項目結構都是有一個parent和若干個子module,parent模塊一般package屬性是pom,子module一般爲jar或war。但是對於在parent項目下還有包含有pom模塊的情況可能會有點困惑,這裏記敘一下這種情況的配置。
1.1 一般項目結構
pom{
a模塊,
b模塊
}
1.2 jenkins的sonarqube scan配置
sonar.projectKey=projectkey
sonar.projectName=projectname
sonar.modules=a,b
a.sonar.projectName=a
a.sonar.projectKey=a
a.sonar.sources=a/src/main/java
a.sonar.tests=a/src/test/java
...
b.sonar.projectName=b
b.sonar.projectKey=b
b.sonar.sources=b/src/main/java
b.sonar.tests=b/src/test/java
...
2.1 複雜項目結構
項目結構大致如下:
pom{
a模塊,
b模塊
pom{
model,
service,
dao
}
}
2.2 jenkins的sonarqube scan配置
這裏忽略掉pom模塊下面的子pom模塊就行,把service和dao模塊也配置成最外成pom文件的子模塊就行。注意不要把第二個pom也寫一個sonar.projectKey這個是sonarqube掃描的唯一標識
sonar.projectKey=projectkey
sonar.projectName=projectname
sonar.modules=a,b,service,dao
...
a.sonar.projectName=a
a.sonar.projectKey=a
a.sonar.sources=a/src/main/java
a.sonar.tests=a/src/test/java
...
b.sonar.projectName=b
b.sonar.projectKey=b
b.sonar.sources=b/src/main/java
b.sonar.tests=b/src/test/java
...
model.sonar.projectName=model
model.sonar.projectKey=model
model.sonar.sources=model/src/main/java
model.sonar.tests=model/src/test/java
...
dao.sonar.projectName=dao
dao.sonar.projectKey=dao
dao.sonar.sources=dao/src/main/java
dao.sonar.tests=dao/src/test/java
...