web-dev-qa-db-ja.com

IntellijのGradleのチェックスタイルからフォルダを除外する方法

私はIntelliJとGradleを初めて使用しますが、JavaとEclipseについて十分な経験があります。wsdlファイルからいくつかのJavaクラスを生成しました。それらをsrc/main/resourcesの下に置きました。フォルダ名-「generatedsources」。

IntelliJでgradleを使用して、このフォルダーとsrc/main/resources/generatedsources/*などのサブフォルダーのcheckstyleを防止しようとしています。

私はそのようないくつかの行を試しました。

task checkstyle(type: Checkstyle) {
        source 'src'
    //    include '**/*.Java'
    //    exclude '**/gen/**'
    //    exclude '**/R.Java'
    //    exclude '**/BuildConfig.Java'
        exclude 'src/main/resources/generatedsources/**'
    }

しかし、私は再び失敗しました。

build.gradle;

apply plugin: 'war'
apply plugin: 'jetty'
apply plugin: 'checkstyle'
apply plugin: 'Java'
apply plugin: 'no.nils.wsdl2Java'

sourceCompatibility = 1.7
version = '1.0'    

...

buildscript{
    repositories{
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'no.nils:wsdl2Java:0.10'
    }
}

task checkstyle(type: Checkstyle) {
    source 'src'
//    include '**/*.Java'
//    exclude '**/gen/**'
//    exclude '**/R.Java'
//    exclude '**/BuildConfig.Java'
    exclude 'src/main/resources/generatedsources/**'
}

編集-推奨後(しかしまだ失敗しました!):

apply plugin: 'war'
apply plugin: 'jetty'
apply plugin: 'checkstyle'
apply plugin: 'Java'
apply plugin: 'no.nils.wsdl2Java'

sourceCompatibility = 1.7
version = '1.0'

description = """BLABLABLA_application"""

war.archiveName = "BLABLABLA.war"

configurations{
    deployerJars
}

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'org.codehaus.jackson', name: 'jackson-core-asl', version: '1.9.3'
    compile group: 'org.codehaus.jackson', name: 'jackson-mapper-asl', version: '1.9.3'
    compile group: 'org.springframework', name: 'spring-core', version:'4.0.0.RELEASE'
    compile group: 'org.springframework', name: 'spring-web', version:'4.0.0.RELEASE'
    compile 'log4j:log4j:1.2.17'
    compile 'com.Sun.xml.ws:jaxws-rt:2.2.8'
    compile 'org.jvnet.jax-ws-commons.spring:jaxws-spring:1.9'
    compile group: 'org.springframework', name: 'spring-webmvc', version:'4.0.0.RELEASE'
    providedCompile group: 'javax.servlet', name: 'servlet-api', version:'2.5'
    testCompile group: 'junit', name: 'junit', version: '4.11'
    deployerJars "org.Apache.maven.wagon:wagon-http:2.2"
}

jar {
    manifest {
        attributes 'Implementation-Title': 'BLABLABLA', 'Implementation-Version': version
    }
}

uploadArchives {
    repositories {
        flatDir {
            dirs 'repos'
        }
    }
}


buildscript{
    repositories{
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'no.nils:wsdl2Java:0.10'
    }
}

wsdl2Java{
    wsdlsToGenerate = [
            ["$projectDir/src/main/resources/BLABLABLA.wsdl"]
    ]
    generatedWsdlDir = file("$projectDir/src/gen/Java")
    wsdlDir = file("$projectDir/src/main/resources")
}

wsdl2javaExt {
    cxfVersion = "2.5.1"
}

tasks.withType(Checkstyle) {
    exclude '**/your/generated/package/goes/here**'
}

checkstyleMain.exclude '**/your/generated/package/goes/here**'

tasks.withTypeおよび「checkstyleMain」の「exclude」により、「シンボルを解決できません」などのエラーが発生します。

8
séan35

checkstyleプラグインが適用されると、カスタムタスクが一緒に配信されるため( ここ を参照)、タイプCheckstyleのカスタムタスクを追加する代わりに、出荷されたプラグインを構成します。これはそれが行われるべき方法です:

tasks.withType(Checkstyle) {
    exclude '**/your/generated/package/goes/here**'
}

すべてではなく、特定のタスクを構成することもできます。

checkstyleMain.exclude '**/your/generated/package/goes/here**'

また、生成されたソースをsrc/main/resourcesの下に置くことはお勧めできません。通常、そのようなファイルは、たとえばsrc/gen/Java

7
Opal

CheckStyle&pmd + QueryDSLで多くの問題が発生しました。私にとっての最終的な解決策は、生成されたソースを除外することではなく、アセンブルタスクの後にそれらをクリーンアップすることでした。ソースなし-分析するものはありません! :)

アセンブル{finalizedBycleanQuerydslSourcesDir}