I am starting a new project with Grails and currently have no experience in it. Grails 3.0.9 is the latest version, but I have read that some plugins are not yet compatible with Grails 3, is this true? If this is true, should I consider a previous version of Grails?
Being unexperienced in web development, I am not yet sure what plugins I will require and am therefore unable to properly evaluate my need for those that aren't useable. Do the pros of using version 3.0 outweigh the cons? Or by using the latest version do you think avoiding the hassle of upgrading plugins in the future be something worth considering above all else?
Answer to Which version of Grails should be used
could vary from person to person and is highly opinion based but there are some factors that could make the decision easier.
Especially I would talk about grails 2.5 and grails 3.x versions.
Reason to Choose 2.5 version:
Lesser number of bugs are there in 2.5 version as compared to lower versions but is heavy and is low in development time performance.
Good integration with IntelliJ idea is there for newer version.
Reason to Choose grails 3.x
Though good plugin support is not yet available, I would say you may use java libraries after all and no way blocked. Most plugins just provide an easier way to setup the library environment and some helpful tags etc which we could also create ourselves. Hence it could be a bit time consuming in setup but would be faster in development later especially when you override plugin features.
grails 3.x is on gradle which makes it highly recommended to be used as compared to grails 2.5. Gradle is ultimate build tool that has over come a lot of issues or weaknesses of older build tools.
it supports spring-boot and spring at it's core but is more diligent in using it. It gives enormous power and possibilities and flexibility just like any java project.
It has become lightweight now and comes with least configurations which makes it good choice in terms of performance.
Last but not least it comes with spring 4.1, groovy 2.4 and support for traits and enhanced IDE integration.
These seems some good points to consider while making a choice for grails framework.
In last this may have several opinions from experts but ultimate choice should be the newest but with good reviews only.
Edit: Elaboration of certain points which may not be obvious to all.
supports spring-boot and spring at it's core but is more diligent in using it
:
spring-boot is the quick start helper for any spring application and is used just to get you started with spring and nothing more than that. In other words, it reduces count of your dependencies in maven or build.gradle.
grails 3.x provide public static void main(String ..args){}
method as entry point to run your web application which makes it more springy. At the same point you could integrate any customisation required. You could run web application like a normal java/groovy main application. By diligent, I mean that things has been integrated carefully this time and not like old buggy grails version. There could be bugs here in 3.x as well but it's way better than 2.x.
So when you start working with grails 3.x you will feel working on spring with same artefact level feel i.e. domains, controllers and services would all behave same as earlier but you will notice configuration level changes like yaml files, libraries used etc.
In one sentence, after all it's spring / hibernate used inside, you know spring/hibernate you know grails more than anyone else knows