How do you manage developing with multiple versions of Grails using Windows?

前端 未结 10 2407
天涯浪人
天涯浪人 2021-01-04 02:13

We\'ve been using Grails for a little while now and have been through a few Grails versions now. We don\'t always want to migrate our \'older\' apps immediately but often us

相关标签:
10条回答
  • 2021-01-04 02:33

    Some answers are outdated.

    Seems that the best option nowadays is SDKMAN!:

    SDKMAN! installs smoothly on Mac OSX, Linux, WLS, Cygwin, Solaris and FreeBSD. We also support Bash and ZSH shells.

    Is also possible to install on Windows, but SDKMAN "can not be installed natively on Windows and requires WLS, Cygwin or MSYS+MinGW".

    After that, you can choose the Grails SDK and which version you want. For example:

    sdk install grails 1.3.7
    
    0 讨论(0)
  • 2021-01-04 02:35

    It's now MUCH much later, and GVM is not the tool it once was. Instead, I use SDKMAN (https://sdkman.io/) and, with Windows getting some linux-like tooling, or using Cygwin, etc. it's installable on Windows.

    ------ OLD answer below ------

    GVM is a tool for unix/mac environments to manage Groovy/Gradle/Grails/more versions, and someone finally made a Windows equivalent called Posh-gvm (short for Power-shell GVM). It's very useful and easy to use to download and configure your environment for whichever version of these tools you want to use at any point in time.

    If you're using an IDE, posh-gvm is still a great way to download/install the new versions as they come out, and your IDE can point into the posh-gvm install directories.

    0 讨论(0)
  • 2021-01-04 02:36

    Check out this link, it explains exactly how to do that using cygwin and mapping several aliases.

    Also, learn how the plugins directory work and replicate it several times for each version of Grails. I also use global plugins for the ones I use often, like tomcat, hibernate, dbUtil, console, etc.

    Say you want to switch between 1.1 and 1.2M4 - you could have those directories setup with the plugins you are using:

    c:\Users\username\.grails\1.2-M4\projects\projectname\plugins
    
    c:\Users\username\.grails\1.1.1\projects\projectname\plugins
    

    Then, take applications.groovy and make several copies, like

    application.groovy.1.1
    application.groovy.1.2M4
    

    Now, to switch, you just need to rename the application.groovy.X to application.groovy and you are good to go (after running grails clean of course):

    grails1.1 run-app 
    grails12M4 run-app
    

    Lastly, there are other differences between versions (i.e. new 1.2 is introducing dependencies DSL), but most of the time things are backwards compatible enough that you can come up with a common denominator.

    0 讨论(0)
  • 2021-01-04 02:37

    IntelliJ allows you to specify which version of Grails to apply as a per-project facet configuration. The Eclipse plugin has yet to achieve this level of abstraction.

    0 讨论(0)
  • 2021-01-04 02:40

    I have a batch file, that looks like below.

    @ECHO OFF
    
    if "%1"=="231" goto grails231
    if "%1"=="232" goto grails232
    if "%1"=="233" goto grails233
    if "%1"=="234" goto grails234
    
    
    goto end
    
    :grails231
    set GRAILS_HOME=F:\softwares\grails-2.3.1
    set PATH=%GRAILS_HOME%\bin;%PATH%
    goto end
    
    :grails232
    set GRAILS_HOME=F:\softwares\grails-2.3.2
    set PATH=%GRAILS_HOME%\bin;%PATH%
    goto end
    
    
    :grails233
    set GRAILS_HOME=F:\softwares\grails-2.3.3
    set PATH=%GRAILS_HOME%\bin;%PATH%
    goto end
    
    :grails234
    set GRAILS_HOME=F:\softwares\grails-2.3.4
    set PATH=%GRAILS_HOME%\bin;%PATH%
    goto end
    
    :end
    

    It can be run like 'setgrails 233' and it will set the grails 2.3.3

    0 讨论(0)
  • 2021-01-04 02:43

    On Linux/Mac, GVM is a fantastic tool for installing and working with multiple versions of Grails, Groovy, etc. You can't use GVM itself on Windows1, but there is a clone posh-gvm that will run under Powershell on Windows.

    1. AFAIK this is because Windows doesn't support symlinks
    0 讨论(0)
提交回复
热议问题