ultraq / thymeleaf-layout-dialect

A dialect for Thymeleaf that lets you build layouts and reusable templates in order to improve code reuse
https://ultraq.github.io/thymeleaf-layout-dialect/
Apache License 2.0
700 stars 111 forks source link

Upgrade groovy version #205

Closed silviu-negoita closed 3 years ago

silviu-negoita commented 4 years ago

Action

Upgrade org.codehaus.groovy:groovy version to work with io.rest-assured:rest-assured which is a test library. org.codehaus.groovy:groovy version should be at least 2.5.8

Issue

java.lang.NoClassDefFoundError:org.apache.groovy.io.StringBuilderWriter in my tests.

Context

For now, io.rest-assured:rest-assured uses org.codehaus.groovy:groovy version 2.5.8 , where org.apache.groovy.io.StringBuilderWriter is present.

Due to version clash with org.codehaus.groovy:groovy library, maven loads the non-test library(thymeleaf-layout-dialect) version which is 2.4.13, where org.apache.groovy.io.StringBuilderWriter does not exists.

P.S. My current versions:

 +- nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:jar:2.4.1:compile
 +- nz.net.ultraq.thymeleaf:thymeleaf-expression-processor:jar:1.1.3:compile
 |  \- org.codehaus.groovy:groovy:jar:2.4.13:compile

Later Edit

I tested with org.codehaus.groovy:groovy:2.5.11 and library still works, at least from what I need it to do

ultraq commented 4 years ago

I've upgraded Groovy in an in-development branch that I think will become the 2.5.0 release of the layout dialect at some time. It's available as a 2.5.0-SNAPSHOT version if you wish to try that.

And yes, as mentioned in your edit, you can drop in Groovy 2.5.x as a (test) dependency of your project and the conflict resolution algorithm will pick that over Groovy 2.4 defined in the layout dialect and it should work just fine 👍 I remember not having to make any code changes in my development branch when making that upgrade.