Refreshing gradle in IntelliJ causes source folder

2020-06-03 04:25发布

问题:

When I run refresh gradle in IntelliJ IDEA, my main folder is set to be the source root, but "java", which is my actual source root, is unmarked.

I have to change this manually every time after I do gradle refresh.

Do you know what the relevant gradle setting is?

Can it be in a common gradle file?

Should I change the main folder to be the source root?

How can I know where is the common gradle I might inherit from? How can I override this in my local build.gradle?

My build.gradle:

apply plugin: 'java'
apply plugin: 'application'

sourceCompatibility = 1.8
version = '1.0'

repositories {
    mavenCentral()
}

dependencies {
//
//    configurations.all*.exclude(group: 'com.sun.jersey', module: 'jersey-bundle')
//    configurations.all*.exclude(group: 'com.fasterxml.jackson.core', module:'jackson-databind')


    compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'

    compile 'com.google.inject:guice:4.0-beta5'
    compile 'com.sun.jersey:jersey-core:1.18.3'
    compile 'com.sun.jersey:jersey-client:1.18.3'
    compile 'com.sun.jersey:jersey-json:1.18.3'
    compile 'com.sun.jersey.contribs:jersey-apache-client:1.18.3'
    compile group: 'junit', name: 'junit', version: '4.11'
    compile 'com.vividsolutions:jts:1.13'
    compile 'net.sf.opencsv:opencsv:2.3'
    compile 'com.googlecode.json-simple:json-simple:1.1'
    compile 'com.google.guava:guava:18.0'

    //testCompile group: 'junit', name: 'junit', version: '4.11'
}


sourceSets {
    main {
        java {
            srcDirs = ['src/main']
        }
    }

    test {
        java {
            srcDirs = ['src/main']
        }
    }
}


test {
    testLogging {
// Show that tests are run in the command-line output
        events 'started', 'passed'
    }
}


task run_BaselineGenerator(type: JavaExec) {
    classpath sourceSets.main.runtimeClasspath
    main = "com.waze.routing.automation.runners.BaselineGenerator"
}

回答1:

Your sourceSets look incorrect to me. I would try:

sourceSets {
    main {
        java {
            srcDirs = ['src/main/java']
        }
    }

    test {
        java {
            srcDirs = ['src/test/java']
        }
    }
}