The new @Builder annotation with ExternalStrategy in Groovy 2.3.1 still result in compilation error if build with Gradle (1.12, 1.11)

(digitarts) #1

I just verified, which has been fixed in 231, but when I tried ExternalStrategy, I got the following error:

E:\dev\content\test-ws\ii-13-groovy230-test\hello-groovy230-gradle\src\main\groovy\ClassABuilder.groovy: 7: The builderStrategy class ‘groovy.transform.builder.ExternalStrategy’ on @Builder is not a builderStrategy

@ line 7, column 1.

@Builder(builderStrategy=ExternalStrategy, forClass=ClassA, prefix=‘with’)


This is ClassABuilder class definition: @Builder(builderStrategy=ExternalStrategy, forClass=ClassA, prefix=‘with’) class ClassABuilder {}

I guess this is still a Groovy bug, but I’m not familiar how to debug Groovy+Gradle.

Thanks in advanced.

(Peter Niederwieser) #2

Are you saying that it now works with the default strategy, but doesn’t work when a strategy is explicitly specified? Can you double-check this?

(digitarts) #3

Thanks for quickly reply,

Actually, Yep, the default strategy works fine, please see below:


class ClassA {

long ts

String name


And this is the test for external strategy:

class ClassA {

long ts

String name


@Builder(builderStrategy=ExternalStrategy, forClass=ClassA, prefix=‘with’)

class ClassABuilder {}

(Peter Niederwieser) #4

Thanks for the feedback. I’ve commented on GROOVY-6774 to have this fixed as well.

(Paul King) #5

On Groovy’s master and 2_3_X branches there should be a fix to this. If you are in a position to test a snapshot version (built automatically by the CI server) that would be great.

(digitarts) #6

I verified on 240- and 232-snapshot according to the cases in the doc as below:

It looks should be fixed this time, thanks for you guys’ rapid feedback.