Hi,

I'm reworking the API of the various tasks which take source as input, so they can handle our various types such as FileCollection and FileTree. This includes the tasks: Compile, GroovyCompile, ScalaCompile, Javadoc, Groovydoc, Scaladoc, Checkstyle, CodeNarc.

I'd like to keep the ability to keep the ability to use a source directory or set of source directories. So, I'm thinking something like the following, instead of the srcDirs property:

void src(Object... source) // Interprets source as per CopySpec.from(source):

void setSrc(Object source) // Equivalent to discarding all the current source and calling source(source)

FileTree getSrc() // Returns the tree of source.

Plus all the methods on PatternFilterable: include(), exclude(), etc.

Some examples:

compileJava {
src 'src/main/java' // includes all files under $projectDir/src/main/java src 'src/java/Source1.java', 'src/java/Source2.java' // includes the 2 specified source files
   src ['src/main/java', 'src/Source1.java']
   src source.main.java // all java source in the 'main' source set
   src { javaSrcDirNames.collect { "$srcRoot/$it" } } // 0.7 behaviour

   include 'org/gradle/api/**'
}

and you can do things like:

copy {
   from compileJava.src
   into 'some/dir'
}

Some questions:

- Should we call the method from() instead of src(), to be consistent with the Copy task?

- Do we need the include and exclude methods on these tasks? Source set has them, as does FileTree, so you can do:

source.main.java {
   include 'some/pattern/**'
   exclude 'some/other/pattern/**'
}

or

compileJava {
   src fileTree {
       from 'some/src/dir'
       include 'some/pattern/**'
       exclude 'some/pattern/**'
   }
}


Adam


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to