Custom sourceSets processResources task

Hi, In a java project, i have 2 resources directories, the first should be copied directly and the content of the second one should be “filtered” to replace properties like ${…}.

So I’ve defined a custom sourceSet with the directory to be filtered:

sourceSets {
    filtered {
         resources { srcDir 'src/config' }
    }
    main {
        java { srcDir 'src/java'
}
        resources { srcDir 'src/resources' }
        compileClasspath += filtered.output
        runtimeClasspath += filtered.output
    }
}

According to the documentation, the java plugins adds a task called processFilteredResources. The task should be the perfect place to put my filtering stuff.

processFilteredResources{
  println 'testFilteredResources'
  // filter(org.apache.tools.ant.filters.ExpandProperties,project: ant.project)
}

But during evaluation, I have the folowibng error: Could not find method processFilteredResources() for arguments [build_4t503e7cqod04a732sqn479dli$_run_closure4@2849f686] on root project

I’m using Gradle 1.12

Please tell me if it is the best approach and if I’m missing something. Cheers,

Julien

Sounds like the build script might be trying to configure ‘processFilteredResources’ before the source set has been added.

Hi Peter,

Declaring the sourceSets before configuring processFilteredResources task solved the problem.

Thank you,

Julien