# Mixed Groovy + Java project is refusing to compile

**URL:** https://discuss.gradle.org/t/mixed-groovy-java-project-is-refusing-to-compile/2070
**Category:** Old Forum Archive
**Created:** [March 28, 2014, 12:56am UTC](https://discuss.gradle.org/t/mixed-groovy-java-project-is-refusing-to-compile/2070 "2014-03-28T00:56:00Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![Ben\_Fagin](https://avatars.discourse-cdn.com/v4/letter/b/5fc32e/32.png) [@Ben\_Fagin](https://discuss.gradle.org/u/Ben_Fagin)
#### Post date: [March 28, 2014, 12:56am UTC](https://discuss.gradle.org/t/mixed-groovy-java-project-is-refusing-to-compile/2070/1 "2014-03-28T00:56:00Z")

</div>

Hello all. I have been trying to get my mixed groovy and java project to compile without much success. Whenever I compile I am getting a NoClassDefFoundError for my Java classes. This is curious because the error would seem to indicate that the joint compilation isn’t processing Java files first.

I suspect that my source sets are not configured properly. My project has mixed groovy and java in src/main, src/test, and src/it, with three source sets configured for those. When I run gradle compileIntegrationTestGroovy is when I get the error. The class it complains about not finding is a java class inside of the src/it/java directory.

Why would the compilation ever fail to find a class it is supposed to be compiling? I am using gradle 1.8, groovy 2.2.2. Build script is below. Thanks!

```gradle
sourceSets {
    main {
        java {
            srcDirs = []
        }
        groovy {
            srcDirs = ['src/main/java']
        }
        resources {
            exclude 'properties/spring.properties'
        }
    }
    test {
        java {
            srcDirs = []
        }
        groovy {
            srcDirs = ['src/test/java']
        }
    }
    integrationTest {
        compileClasspath += sourceSets.test.compileClasspath + sourceSets.test.output
        runtimeClasspath += output + sourceSets.test.runtimeClasspath + sourceSets.test.output
          java {
            srcDirs = []
        }
        groovy {
            srcDirs = ['src/it/java']
        }
        resources {
            srcDirs = ['src/it/resources']
        }
    }
}

```

---

<div class="post-metadata">

### Author: ![bmuschko](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/bmuschko/32/5458_2.png) [@bmuschko](https://discuss.gradle.org/u/bmuschko)
#### Post date: [March 28, 2014, 11:48am UTC](https://discuss.gradle.org/t/mixed-groovy-java-project-is-refusing-to-compile/2070/2 "2014-03-28T11:48:00Z")

</div>

I believe your integration test compile classpath also needs the compiled classes from your main SourceSet. Try adding ‘sourceSets.main.output’ to ‘integrationTest.compileClasspath’.

---

<div class="post-metadata">

### Author: ![Ben\_Fagin](https://avatars.discourse-cdn.com/v4/letter/b/5fc32e/32.png) [@Ben\_Fagin](https://discuss.gradle.org/u/Ben_Fagin)
#### Post date: [March 28, 2014, 5:00pm UTC](https://discuss.gradle.org/t/mixed-groovy-java-project-is-refusing-to-compile/2070/3 "2014-03-28T17:00:00Z")

</div>

Tried this, but no dice. The class that it is complaining about is actually in the integration compile source, under src/it/java.

---

<div class="post-metadata">

### Author: ![bmuschko](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/bmuschko/32/5458_2.png) [@bmuschko](https://discuss.gradle.org/u/bmuschko)
#### Post date: [March 28, 2014, 5:11pm UTC](https://discuss.gradle.org/t/mixed-groovy-java-project-is-refusing-to-compile/2070/4 "2014-03-28T17:11:00Z")

</div>

I guess I’d need to try it out myself. Could you prepare a minimal example on GitHub?

---

<div class="post-metadata">

### Author: ![Ben\_Fagin](https://avatars.discourse-cdn.com/v4/letter/b/5fc32e/32.png) [@Ben\_Fagin](https://discuss.gradle.org/u/Ben_Fagin)
#### Post date: [March 28, 2014, 10:47pm UTC](https://discuss.gradle.org/t/mixed-groovy-java-project-is-refusing-to-compile/2070/5 "2014-03-28T22:47:00Z")

</div>

So I broke my project down in to the minimal form by deleting a few files at a time, but still it was erroring out. As a last ditch effort I trashed the system-wide .gradle folder. And then it worked (naturally). I have no idea what the issue was, but it looks like a case of over-eager caching. Anyway I’m glad to have this working finally.

As part of the debugging process I created a stub project which exercises a few different inheritance patterns and acts as a sanity check for the joint compilation. Perhaps it can be of use to others in the future. [https://github.com/UnquietCode/Groovy-Java-Gradle](https://github.com/UnquietCode/Groovy-Java-Gradle)

Thanks, Ben

---

<div class="post-metadata">

### Author: ![Ben\_Fagin](https://avatars.discourse-cdn.com/v4/letter/b/5fc32e/32.png) [@Ben\_Fagin](https://discuss.gradle.org/u/Ben_Fagin)
#### Post date: [March 28, 2014, 10:47pm UTC](https://discuss.gradle.org/t/mixed-groovy-java-project-is-refusing-to-compile/2070/6 "2014-03-28T22:47:00Z")

</div>

Looks like it was something else. See my response below.
