Dependent Configurations for Interfaces of Extensible Library Project

gradle-core

(Ken Taylor) #1

I’m building a java application that includes portions that the user can extend. I created java interfaces for these extension points. These interfaces are in a source tree in my project (src/interfaces/java). I created a configuration for the interfaces called “interfaces” and I made the main and testCompile configurations extend this “interfaces” configuration. I defined the sourceSets for interfaces to point to “src/interfaces/java”. The problem is that the project won’t build because the main and test configuration sources reference the interfaces from the interfaces configuration. It should work but it doesn’t. The java compile fails saying that the packages don’t exist for the interfaces configuration, when compiling main. I can see the interfaces being compiled and the classes are in the build/classes folder, so I’m confused. Any ideas? Am I going to have to put the interfaces in a separate project?