Perhaps $buildDir/genSrc/main is automatically added to the main source set
and $buildDir/genSrc/test automatically added to test source set?

And similar for generated resources, default main resources could be by
default
src/main/resources + $buildDir/genSrc/main/resources.

Personally, I like "generated source" to be in the buildDir as then a clean
forces it to be regenerated and it is obvious that it is not, and should not
be, hand-coded.

Just a thought...
Philip

On Thu, Aug 19, 2010 at 7:04 PM, Adam Murdoch <[email protected]> wrote:

>  On 20/08/10 4:55 AM, Matthias Bohlen wrote:
>
> Thanks for the hint! I configured it as follows:
>
>  sourceSets {
>     generated {
>         java {
>             srcDirs = [ 'src/generated/java' ]
>         }
>     }
>     main {
>         java {
>             srcDirs = [ 'src/main/java' ]
>             compileClasspath += generated.classes
>         }
>     }
> }
>
>  That solved the compile problem but the generated and compiled files are
> not packaged into the jar file.
>
>
> I suspect you'll keep bumping into problems like this, because the
> generated classes aren't really a separate source set, they're part of the
> main classes of the project. I would suggest doing something like:
>
> task someGenerationTask(...) {
>     destinationDir = "$buildDir/generated-src"
> }
>
> compileJava {
>     dependsOn someGenerationTask
>     source someGenerationTask.destinationDir
> }
>
> To make this kind of thing easier, we could add the concept of generated
> source to the Gradle model, so you could just do something like:
>
> task someGenerationTask(...) {
>     destinationDir = "$buildDir/generated-src"
> }
>
> sourceSets.main.java {
>     generatedSrcDir someGenerationTask.destinationDir
>
> }
>
>
>
>  Any ideas?
>
>  ---
>
>  Am 19.08.2010 um 19:52 schrieb Robert Fischer:
>
> This just solved an issue I was having, too.  Thanks!
>
>  ~~ Robert.
>
> On 19 August 2010 12:45, Philip Crotwell <[email protected]> wrote:
>
>>
>> This from the gradle users list might help:
>> http://gradle.markmail.org/thread/fiy7lycws3fmqf52
>>
>> Philip
>>
>>
>> On Thu, Aug 19, 2010 at 12:33 PM, Matthias Bohlen <[email protected]>wrote:
>>
>>> Hi,
>>>
>>>  today, I created a separate source set for generated code:
>>>
>>>  sourceSets {
>>>     main {
>>>         java {
>>>             srcDirs = [ 'src/main/java' ]
>>>         }
>>>     }
>>>     generated {
>>>         java {
>>>             srcDirs = [ 'src/generated/java' ]
>>>         }
>>>     }
>>> }
>>>
>>>  I did this because I do not want to run Checkstyle on the generated
>>> code, so I also said:
>>>
>>>  checkstyleGenerated.enabled = false
>>>
>>>  However, the compileJava task does not seem to know about the second
>>> source set because I get compile errors when a symbol is referenced that is
>>> defined in the generated code.
>>>
>>>  So: How do I add the "generated" source set to the compile and jar
>>> tasks?
>>>
>>>  Cheers
>>> Matthias
>>>
>>>
>>
>
>
>
> --
> Adam Murdoch
> Gradle Developerhttp://www.gradle.org
> CTO, Gradle Inc. - Gradle Training, Support, Consultinghttp://www.gradle.biz
>
>

Reply via email to