Specify dependencies for separate sourceSets


(j serup) #1

In a project I have multiple sourceSets/source folders. Each sourceSet needs to be compiled but also needs to have separate dependencies:

apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'eclipse'
  group = 'grpId'
version = '1.0'
  repositories {
  mavenLocal()
}
    sourceSets {
 main {
  java {
   srcDir 'src'
  }
 }
 other {
  java {
   srcDir 'other'
  }
 }
}
  dependencies {
  // specify that the 'other' sourceSet should be compiled
  compile sourceSets.other.output
      // How to set dependency specific for the the 'main' and 'other' sourceSet?
}

How do I:

  1. Make sure both sourceSets are compiled - seems to work with the above approach

  2. Specify a dependency for the sourceSet ‘other’, eg. c:\repo\a.jar?

  3. Specify a dependency for the sourceSet ‘main’, eg. c:\repo\b.jar


(j serup) #2

This seems to do the trick:

http://stackoverflow.com/questions/8791977/is-there-a-way-to-specify-dependencies-for-a-newly-created-sourceset-in-gradle

But the sourceSet specific dependencies seems to be ignored when generating the .classpath using the gradle eclipse plugin:

http://gradle.org/docs/current/userguide/eclipse_plugin.html


(Peter Niederwieser) #3

It can’t be modeled in Eclipse. And it shouldn’t be necessary, because the smallest unit of compilation in Eclipse is the project.