Refreshing gradle in IntelliJ causes source folder structure to change

gradle, intellij-idea, java

Solution

Your sourceSets look incorrect to me. I would try:

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

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

Problem

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" } ```

Original source