<commit_before># Grails
=======================================
1. install grails
```
curl -s https://get.sdkman.io | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install grails
grails -version
```
2. create grails app
```
grails create-app com.vogella.grails.guestbook  # @ grails-app/conf/application.yml/ to speccify a default package
grails list-profiles  # list all profiles
grails create-app myApp -profile rest-api
grails create-app myApp -profile org.grails.profiles:react:1.0.2
grails profile-info plugin  # get detaied info about a profile
```
3. run grails app
```
./grailsw run-app  # without installed grails
grails run-app   # which installed grails
http://localhost:8080/com.vogella.grails.guestbook
# run app by interactive mode
./grailsw<commit_msg>added a link<commit_after># Grails
=======================================
0. good links
```
http://grails.1312388.n4.nabble.com/
```
1. install grails
```
curl -s https://get.sdkman.io | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install grails
grails -version
```
2. create grails app
```
grails create-app com.vogella.grails.guestbook  # @ grails-app/conf/application.yml/ to speccify a default package
grails list-profiles  # list all profiles
grails create-app myApp -profile rest-api
grails create-app myApp -profile org.grails.profiles:react:1.0.2
grails profile-info plugin  # get detaied info about a profile
```
3. run grails app
```
./grailsw run-app  # without installed grails
grails run-app   # which installed grails
http://localhost:8080/com.vogella.grails.guestbook
# run app by interactive mode
./grailsw
{'fraction_non_alphanumeric': 0.16042446941323346, 'fraction_numerical': 0.018102372034956304, 'mean_word_length': 4.397306397306397, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1025931', 'n_tokens_mistral': 558, 'n_tokens_neox': 526, 'n_words': 153}