|
5 | 5 |
|
6 | 6 | [](https://docs.oracle.com/en/java/javase/17/) |
7 | 7 | [](https://groovy-lang.org/releasenotes/groovy-4.0.html) |
8 | | -[](https://github.com/spring-projects/spring-boot/releases/tag/v3.3.10) |
| 8 | +[](https://github.com/spring-projects/spring-boot/releases/tag/v3.3.11) |
9 | 9 |
|
10 | 10 | # Grace Framework |
11 | 11 |
|
12 | 12 | [Grace](https://github.com/graceframework/grace-framework) is a fork of Grails 5 that started development in early 2022, it's a powerful and open-source One-Person web framework used to build enterprise-grade [Spring Boot](https://spring.io/projects/spring-boot/) applications with the powerful [Groovy](https://groovy-lang.org/) programming language. The core framework is very extensible and there are numerous [Plugins](https://github.com/grace-plugins/) available that provide easy integration of add-on features. |
13 | 13 |
|
| 14 | +## Grace vs Spring Boot |
| 15 | + |
| 16 | +Grace and Spring Boot frameworks are excellent for building web applications, but their use depends on what you want. Generally, Grace framework may be advantageous in full-stack and monolithic applications, but Spring Boot is preferred for developing complex and microservice applications. Grace has better developer productivity than Spring Boot. Because it follows the convention over the configuration principle, it minimizes code requirements. This enhances productivity and fosters faster app development. The framework creates faster and more functional prototypes than Spring Boot due to its simple code generation like scaffolding and CoC. Grace fully embraces Groovy to enable many features that would not be possible using Java alone, including a rich Plugin ecosystem and Dynamic Modules, many DSLs, AST Transformations, Trait-based solutions, and much more. Grace also allow you create many different types of applications using Application profiles and templates. The learning curve for Grace is moderate and more straightforward than Spring Boot due to its emphasis on convention and simplicity. Currently, Grace framework has a less active developer community and support than Spring Boot, and the IDE tools don't support Groovy and Grace as well as Java and Spring Boot. |
| 17 | + |
| 18 | +You can learn more on the page [Grace vs Spring Boot](https://github.com/graceframework/grace-framework/wiki/Grace-vs-Spring-Boot). |
| 19 | + |
14 | 20 | ## Getting Started |
15 | 21 |
|
16 | 22 | You need a Java Development Kit (JDK) installed, but it is not necessary to install Groovy because it's bundled with the Grace distribution. |
17 | 23 |
|
18 | 24 | To install Grace, visit https://github.com/graceframework/grace-framework/releases and download the version you would like to use. Set a `GRACE_HOME` environment variable to point to the root of the extracted download and add `GRACE_HOME/bin` to your executable `PATH`. Then in a shell, type the following: |
19 | 25 |
|
20 | 26 | ```bash |
21 | | - grace create-app com.example.blog |
22 | | - cd blog |
23 | | - grace run-app |
| 27 | +$ grace create-app com.example.blog |
| 28 | +$ cd blog |
| 29 | +$ grace run-app |
| 30 | +``` |
| 31 | + |
| 32 | +SDKMAN! (The Software Development Kit Manager) can be used for managing multiple versions of various binary SDKs, including Groovy, Gradle and the Grace. Get SDKMAN! from sdkman.io and install Grace by using the following commands: |
| 33 | + |
| 34 | +```bash |
| 35 | +$ sdk install grace |
24 | 36 | ``` |
25 | 37 |
|
26 | 38 | To build Grace, clone this GitHub repository and execute the install Gradle target: |
27 | 39 |
|
28 | 40 | ```bash |
29 | | - git clone https://github.com/graceframework/grace-framework.git |
30 | | - cd grace-framework |
31 | | - ./gradlew pTML zipDist |
| 41 | +$ git clone https://github.com/graceframework/grace-framework.git |
| 42 | +$ cd grace-framework |
| 43 | +$ ./gradlew pTML zipDist |
32 | 44 | ``` |
33 | 45 |
|
34 | 46 | If you encounter out of memory errors when trying to run the install target, try adjusting Gradle build settings. For example: |
35 | 47 |
|
36 | 48 | ```bash |
37 | | - export GRADLE_OPTS="-Xmx2G -Xms2G -XX:NewSize=512m -XX:MaxNewSize=512m" |
| 49 | +$ export GRADLE_OPTS="-Xmx2G -Xms2G -XX:NewSize=512m -XX:MaxNewSize=512m" |
38 | 50 | ``` |
39 | 51 |
|
40 | 52 | For installation instructions see [INSTALL.txt](INSTALL.txt). |
|
0 commit comments