gradle 如何在多模块项目中为checkstyle排除模块

rslzwgfq  于 2023-03-30  发布在  其他
关注(0)|答案(1)|浏览(289)

我有multi-module composite build project
项目结构如下:

Panda. // Root project
  -PandaService. // Service module
  -PandaDataAccessLayer // DAL module whose code are generated with JOOQ

我想排除checkstylePandaDataAccessLayer模块,因为它的代码是用JOOQ自动生成的。
我的checkstyle.xml位于Panda/config/checkstyle/checkstyle.xml,下面是我的根项目Panda中的build.gradle

repositories {
    mavenCentral() // Use Maven Central for resolving dependencies.
}

subprojects {
    apply plugin: 'java'
    apply plugin: 'checkstyle'
    checkstyle {
        toolVersion = '10.7.0'
        configFile =  rootProject.file('config/checkstyle/checkstyle.xml')
        checkstyleMain.exclude '**/PandaDataAccessLayer/**'
    }
    sourceCompatibility = '11'
    targetCompatibility = '11'
}

我可以看到checkstyle正在运行./gradlew build。然而,生成的报告仍然显示它检查PandaDataAccessLayer模块中的代码。
Checkstyle rule violations were found. See the report at:file:///****/panda/PandaDataAccessLayer/build/reports/checkstyle/main.html
如何从checkstyle中完全排除PandaDataAccessLayer

mepcadol

mepcadol1#

要在rootProject/main项目和所有子模块中激活checkstyle,您必须执行以下步骤
1.在根项目中添加
allprojects { apply plugin:在这里,您可以找到一个简单的方法来解决这个问题。您可以在这里找到一个简单的方法来解决这个问题。您可以在这里找到一个简单的方法来解决这个问题。

checkstyleMain {
     source = 'src/main/java'
 }
 checkstyleTest {
     source = 'src/test/java'
 }

}
1.在子模块的gradle文件中
插件{ id 'java' id 'checkstyle' }
checkstyle { toolVersion = '10.6.0' configFile = file(“${rootDir}/config/checkstyle/checkstyle_google_customized.xml”)ignoreFailures = false maxWarnings = 0 }
如果你排除了一个子模块,那么只排除第二步,它只会考虑主项目

相关问题