diff --git a/core-groovy-2/README.md b/core-groovy-modules/core-groovy-2/README.md
similarity index 100%
rename from core-groovy-2/README.md
rename to core-groovy-modules/core-groovy-2/README.md
diff --git a/core-groovy-2/gmavenplus-pom.xml b/core-groovy-modules/core-groovy-2/gmavenplus-pom.xml
similarity index 99%
rename from core-groovy-2/gmavenplus-pom.xml
rename to core-groovy-modules/core-groovy-2/gmavenplus-pom.xml
index 4dbdfe7d42..43f089ac93 100644
--- a/core-groovy-2/gmavenplus-pom.xml
+++ b/core-groovy-modules/core-groovy-2/gmavenplus-pom.xml
@@ -9,7 +9,7 @@
com.baeldung
- parent-modules
+ core-groovy-modules
1.0.0-SNAPSHOT
diff --git a/core-groovy-2/pom.xml b/core-groovy-modules/core-groovy-2/pom.xml
similarity index 99%
rename from core-groovy-2/pom.xml
rename to core-groovy-modules/core-groovy-2/pom.xml
index 6b78e21080..cf4951b838 100644
--- a/core-groovy-2/pom.xml
+++ b/core-groovy-modules/core-groovy-2/pom.xml
@@ -10,7 +10,7 @@
com.baeldung
- parent-modules
+ core-groovy-modules
1.0.0-SNAPSHOT
diff --git a/core-groovy-2/src/main/groovy/com/baeldung/CalcMath.groovy b/core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/CalcMath.groovy
similarity index 100%
rename from core-groovy-2/src/main/groovy/com/baeldung/CalcMath.groovy
rename to core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/CalcMath.groovy
diff --git a/core-groovy-2/src/main/groovy/com/baeldung/CalcScript.groovy b/core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/CalcScript.groovy
similarity index 100%
rename from core-groovy-2/src/main/groovy/com/baeldung/CalcScript.groovy
rename to core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/CalcScript.groovy
diff --git a/core-groovy-2/src/main/groovy/com/baeldung/category/BaeldungCategory.groovy b/core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/category/BaeldungCategory.groovy
similarity index 100%
rename from core-groovy-2/src/main/groovy/com/baeldung/category/BaeldungCategory.groovy
rename to core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/category/BaeldungCategory.groovy
diff --git a/core-groovy-2/src/main/groovy/com/baeldung/category/NumberCategory.groovy b/core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/category/NumberCategory.groovy
similarity index 100%
rename from core-groovy-2/src/main/groovy/com/baeldung/category/NumberCategory.groovy
rename to core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/category/NumberCategory.groovy
diff --git a/core-groovy-2/src/main/groovy/com/baeldung/concatenate/Wonder.groovy b/core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/concatenate/Wonder.groovy
similarity index 100%
rename from core-groovy-2/src/main/groovy/com/baeldung/concatenate/Wonder.groovy
rename to core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/concatenate/Wonder.groovy
diff --git a/core-groovy-2/src/main/groovy/com/baeldung/determinedatatype/Person.groovy b/core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/determinedatatype/Person.groovy
similarity index 100%
rename from core-groovy-2/src/main/groovy/com/baeldung/determinedatatype/Person.groovy
rename to core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/determinedatatype/Person.groovy
diff --git a/core-groovy-2/src/main/groovy/com/baeldung/metaprogramming/Employee.groovy b/core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/metaprogramming/Employee.groovy
similarity index 100%
rename from core-groovy-2/src/main/groovy/com/baeldung/metaprogramming/Employee.groovy
rename to core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/metaprogramming/Employee.groovy
diff --git a/core-groovy-2/src/main/groovy/com/baeldung/metaprogramming/extension/BasicExtensions.groovy b/core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/metaprogramming/extension/BasicExtensions.groovy
similarity index 100%
rename from core-groovy-2/src/main/groovy/com/baeldung/metaprogramming/extension/BasicExtensions.groovy
rename to core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/metaprogramming/extension/BasicExtensions.groovy
diff --git a/core-groovy-2/src/main/groovy/com/baeldung/metaprogramming/extension/StaticEmployeeExtension.groovy b/core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/metaprogramming/extension/StaticEmployeeExtension.groovy
similarity index 100%
rename from core-groovy-2/src/main/groovy/com/baeldung/metaprogramming/extension/StaticEmployeeExtension.groovy
rename to core-groovy-modules/core-groovy-2/src/main/groovy/com/baeldung/metaprogramming/extension/StaticEmployeeExtension.groovy
diff --git a/core-groovy-2/src/main/java/com/baeldung/MyJointCompilationApp.java b/core-groovy-modules/core-groovy-2/src/main/java/com/baeldung/MyJointCompilationApp.java
similarity index 100%
rename from core-groovy-2/src/main/java/com/baeldung/MyJointCompilationApp.java
rename to core-groovy-modules/core-groovy-2/src/main/java/com/baeldung/MyJointCompilationApp.java
diff --git a/core-groovy-2/src/main/resources/META-INF/services/org.codehaus.groovy.runtime.ExtensionModule b/core-groovy-modules/core-groovy-2/src/main/resources/META-INF/services/org.codehaus.groovy.runtime.ExtensionModule
similarity index 100%
rename from core-groovy-2/src/main/resources/META-INF/services/org.codehaus.groovy.runtime.ExtensionModule
rename to core-groovy-modules/core-groovy-2/src/main/resources/META-INF/services/org.codehaus.groovy.runtime.ExtensionModule
diff --git a/core-groovy-2/src/main/resources/articleEmail.template b/core-groovy-modules/core-groovy-2/src/main/resources/articleEmail.template
similarity index 100%
rename from core-groovy-2/src/main/resources/articleEmail.template
rename to core-groovy-modules/core-groovy-2/src/main/resources/articleEmail.template
diff --git a/core-groovy-2/src/main/resources/email.template b/core-groovy-modules/core-groovy-2/src/main/resources/email.template
similarity index 100%
rename from core-groovy-2/src/main/resources/email.template
rename to core-groovy-modules/core-groovy-2/src/main/resources/email.template
diff --git a/core-groovy-2/src/test/groovy/com/baeldung/category/CategoryUnitTest.groovy b/core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/category/CategoryUnitTest.groovy
similarity index 100%
rename from core-groovy-2/src/test/groovy/com/baeldung/category/CategoryUnitTest.groovy
rename to core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/category/CategoryUnitTest.groovy
diff --git a/core-groovy-2/src/test/groovy/com/baeldung/concatenate/WonderUnitTest.groovy b/core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/concatenate/WonderUnitTest.groovy
similarity index 100%
rename from core-groovy-2/src/test/groovy/com/baeldung/concatenate/WonderUnitTest.groovy
rename to core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/concatenate/WonderUnitTest.groovy
diff --git a/core-groovy-2/src/test/groovy/com/baeldung/defkeyword/DefUnitTest.groovy b/core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/defkeyword/DefUnitTest.groovy
similarity index 100%
rename from core-groovy-2/src/test/groovy/com/baeldung/defkeyword/DefUnitTest.groovy
rename to core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/defkeyword/DefUnitTest.groovy
diff --git a/core-groovy-2/src/test/groovy/com/baeldung/determinedatatype/PersonTest.groovy b/core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/determinedatatype/PersonTest.groovy
similarity index 100%
rename from core-groovy-2/src/test/groovy/com/baeldung/determinedatatype/PersonTest.groovy
rename to core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/determinedatatype/PersonTest.groovy
diff --git a/core-groovy-2/src/test/groovy/com/baeldung/metaprogramming/MetaprogrammingUnitTest.groovy b/core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/metaprogramming/MetaprogrammingUnitTest.groovy
similarity index 100%
rename from core-groovy-2/src/test/groovy/com/baeldung/metaprogramming/MetaprogrammingUnitTest.groovy
rename to core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/metaprogramming/MetaprogrammingUnitTest.groovy
diff --git a/core-groovy-2/src/test/groovy/com/baeldung/strings/StringMatchingSpec.groovy b/core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/strings/StringMatchingSpec.groovy
similarity index 100%
rename from core-groovy-2/src/test/groovy/com/baeldung/strings/StringMatchingSpec.groovy
rename to core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/strings/StringMatchingSpec.groovy
diff --git a/core-groovy-2/src/test/groovy/com/baeldung/templateengine/TemplateEnginesUnitTest.groovy b/core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/templateengine/TemplateEnginesUnitTest.groovy
similarity index 100%
rename from core-groovy-2/src/test/groovy/com/baeldung/templateengine/TemplateEnginesUnitTest.groovy
rename to core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/templateengine/TemplateEnginesUnitTest.groovy
diff --git a/core-groovy-2/src/test/groovy/com/baeldung/webservice/WebserviceUnitTest.groovy b/core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/webservice/WebserviceUnitTest.groovy
similarity index 100%
rename from core-groovy-2/src/test/groovy/com/baeldung/webservice/WebserviceUnitTest.groovy
rename to core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/webservice/WebserviceUnitTest.groovy
diff --git a/core-groovy-2/src/test/groovy/com/baeldung/xml/MarkupBuilderUnitTest.groovy b/core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/xml/MarkupBuilderUnitTest.groovy
similarity index 100%
rename from core-groovy-2/src/test/groovy/com/baeldung/xml/MarkupBuilderUnitTest.groovy
rename to core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/xml/MarkupBuilderUnitTest.groovy
diff --git a/core-groovy-2/src/test/groovy/com/baeldung/xml/XmlParserUnitTest.groovy b/core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/xml/XmlParserUnitTest.groovy
similarity index 100%
rename from core-groovy-2/src/test/groovy/com/baeldung/xml/XmlParserUnitTest.groovy
rename to core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/xml/XmlParserUnitTest.groovy
diff --git a/core-groovy-2/src/test/groovy/com/baeldung/xml/XmlSlurperUnitTest.groovy b/core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/xml/XmlSlurperUnitTest.groovy
similarity index 100%
rename from core-groovy-2/src/test/groovy/com/baeldung/xml/XmlSlurperUnitTest.groovy
rename to core-groovy-modules/core-groovy-2/src/test/groovy/com/baeldung/xml/XmlSlurperUnitTest.groovy
diff --git a/core-groovy-2/src/test/resources/com/baeldung/xml/articles.xml b/core-groovy-modules/core-groovy-2/src/test/resources/com/baeldung/xml/articles.xml
similarity index 100%
rename from core-groovy-2/src/test/resources/com/baeldung/xml/articles.xml
rename to core-groovy-modules/core-groovy-2/src/test/resources/com/baeldung/xml/articles.xml
diff --git a/core-groovy-2/src/test/resources/com/baeldung/xml/articles_short_formatted.xml b/core-groovy-modules/core-groovy-2/src/test/resources/com/baeldung/xml/articles_short_formatted.xml
similarity index 100%
rename from core-groovy-2/src/test/resources/com/baeldung/xml/articles_short_formatted.xml
rename to core-groovy-modules/core-groovy-2/src/test/resources/com/baeldung/xml/articles_short_formatted.xml
diff --git a/core-groovy-collections/README.md b/core-groovy-modules/core-groovy-collections/README.md
similarity index 100%
rename from core-groovy-collections/README.md
rename to core-groovy-modules/core-groovy-collections/README.md
diff --git a/core-groovy-collections/pom.xml b/core-groovy-modules/core-groovy-collections/pom.xml
similarity index 98%
rename from core-groovy-collections/pom.xml
rename to core-groovy-modules/core-groovy-collections/pom.xml
index d589fc74e5..74cde808f5 100644
--- a/core-groovy-collections/pom.xml
+++ b/core-groovy-modules/core-groovy-collections/pom.xml
@@ -10,7 +10,7 @@
com.baeldung
- parent-modules
+ core-groovy-modules
1.0.0-SNAPSHOT
diff --git a/core-groovy-collections/src/test/groovy/com/baeldung/find/ListFindUnitTest.groovy b/core-groovy-modules/core-groovy-collections/src/test/groovy/com/baeldung/find/ListFindUnitTest.groovy
similarity index 100%
rename from core-groovy-collections/src/test/groovy/com/baeldung/find/ListFindUnitTest.groovy
rename to core-groovy-modules/core-groovy-collections/src/test/groovy/com/baeldung/find/ListFindUnitTest.groovy
diff --git a/core-groovy-collections/src/test/groovy/com/baeldung/find/MapFindUnitTest.groovy b/core-groovy-modules/core-groovy-collections/src/test/groovy/com/baeldung/find/MapFindUnitTest.groovy
similarity index 100%
rename from core-groovy-collections/src/test/groovy/com/baeldung/find/MapFindUnitTest.groovy
rename to core-groovy-modules/core-groovy-collections/src/test/groovy/com/baeldung/find/MapFindUnitTest.groovy
diff --git a/core-groovy-collections/src/test/groovy/com/baeldung/find/Person.groovy b/core-groovy-modules/core-groovy-collections/src/test/groovy/com/baeldung/find/Person.groovy
similarity index 100%
rename from core-groovy-collections/src/test/groovy/com/baeldung/find/Person.groovy
rename to core-groovy-modules/core-groovy-collections/src/test/groovy/com/baeldung/find/Person.groovy
diff --git a/core-groovy-collections/src/test/groovy/com/baeldung/find/SetFindUnitTest.groovy b/core-groovy-modules/core-groovy-collections/src/test/groovy/com/baeldung/find/SetFindUnitTest.groovy
similarity index 100%
rename from core-groovy-collections/src/test/groovy/com/baeldung/find/SetFindUnitTest.groovy
rename to core-groovy-modules/core-groovy-collections/src/test/groovy/com/baeldung/find/SetFindUnitTest.groovy
diff --git a/core-groovy-collections/src/test/groovy/com/baeldung/iteratemap/IterateMapUnitTest.groovy b/core-groovy-modules/core-groovy-collections/src/test/groovy/com/baeldung/iteratemap/IterateMapUnitTest.groovy
similarity index 100%
rename from core-groovy-collections/src/test/groovy/com/baeldung/iteratemap/IterateMapUnitTest.groovy
rename to core-groovy-modules/core-groovy-collections/src/test/groovy/com/baeldung/iteratemap/IterateMapUnitTest.groovy
diff --git a/core-groovy-collections/src/test/groovy/com/baeldung/lists/ListUnitTest.groovy b/core-groovy-modules/core-groovy-collections/src/test/groovy/com/baeldung/lists/ListUnitTest.groovy
similarity index 100%
rename from core-groovy-collections/src/test/groovy/com/baeldung/lists/ListUnitTest.groovy
rename to core-groovy-modules/core-groovy-collections/src/test/groovy/com/baeldung/lists/ListUnitTest.groovy
diff --git a/core-groovy-collections/src/test/groovy/com/baeldung/maps/MapTest.groovy b/core-groovy-modules/core-groovy-collections/src/test/groovy/com/baeldung/maps/MapTest.groovy
similarity index 100%
rename from core-groovy-collections/src/test/groovy/com/baeldung/maps/MapTest.groovy
rename to core-groovy-modules/core-groovy-collections/src/test/groovy/com/baeldung/maps/MapTest.groovy
diff --git a/core-groovy-strings/README.md b/core-groovy-modules/core-groovy-strings/README.md
similarity index 100%
rename from core-groovy-strings/README.md
rename to core-groovy-modules/core-groovy-strings/README.md
diff --git a/core-groovy-strings/pom.xml b/core-groovy-modules/core-groovy-strings/pom.xml
similarity index 98%
rename from core-groovy-strings/pom.xml
rename to core-groovy-modules/core-groovy-strings/pom.xml
index 333b15cdbe..f6ad4d33cf 100644
--- a/core-groovy-strings/pom.xml
+++ b/core-groovy-modules/core-groovy-strings/pom.xml
@@ -10,7 +10,7 @@
com.baeldung
- parent-modules
+ core-groovy-modules
1.0.0-SNAPSHOT
diff --git a/core-groovy-strings/src/test/groovy/com/baeldung/removeprefix/RemovePrefixTest.groovy b/core-groovy-modules/core-groovy-strings/src/test/groovy/com/baeldung/removeprefix/RemovePrefixTest.groovy
similarity index 100%
rename from core-groovy-strings/src/test/groovy/com/baeldung/removeprefix/RemovePrefixTest.groovy
rename to core-groovy-modules/core-groovy-strings/src/test/groovy/com/baeldung/removeprefix/RemovePrefixTest.groovy
diff --git a/core-groovy/.gitignore b/core-groovy-modules/core-groovy/.gitignore
similarity index 100%
rename from core-groovy/.gitignore
rename to core-groovy-modules/core-groovy/.gitignore
diff --git a/core-groovy/README.md b/core-groovy-modules/core-groovy/README.md
similarity index 100%
rename from core-groovy/README.md
rename to core-groovy-modules/core-groovy/README.md
diff --git a/core-groovy/build.gradle b/core-groovy-modules/core-groovy/build.gradle
similarity index 100%
rename from core-groovy/build.gradle
rename to core-groovy-modules/core-groovy/build.gradle
diff --git a/core-groovy/pom.xml b/core-groovy-modules/core-groovy/pom.xml
similarity index 98%
rename from core-groovy/pom.xml
rename to core-groovy-modules/core-groovy/pom.xml
index c24982c6a2..0365a0d565 100644
--- a/core-groovy/pom.xml
+++ b/core-groovy-modules/core-groovy/pom.xml
@@ -10,7 +10,7 @@
com.baeldung
- parent-modules
+ core-groovy-modules
1.0.0-SNAPSHOT
diff --git a/core-groovy/src/main/groovy/com/baeldung/closures/Closures.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/closures/Closures.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/closures/Closures.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/closures/Closures.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/closures/Employee.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/closures/Employee.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/closures/Employee.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/closures/Employee.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/file/ReadFile.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/file/ReadFile.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/file/ReadFile.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/file/ReadFile.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/io/Task.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/io/Task.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/io/Task.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/io/Task.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/json/Account.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/json/Account.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/json/Account.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/json/Account.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/json/JsonParser.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/json/JsonParser.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/json/JsonParser.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/json/JsonParser.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/scopes/Scopes.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/scopes/Scopes.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/scopes/Scopes.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/scopes/Scopes.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/scopes/ScopesFail.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/scopes/ScopesFail.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/scopes/ScopesFail.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/scopes/ScopesFail.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/scopes/ScopesFailNoPrint.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/scopes/ScopesFailNoPrint.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/scopes/ScopesFailNoPrint.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/scopes/ScopesFailNoPrint.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/strings/Concatenate.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/strings/Concatenate.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/strings/Concatenate.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/strings/Concatenate.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/traits/AnimalTrait.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/AnimalTrait.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/traits/AnimalTrait.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/AnimalTrait.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/traits/Car.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/Car.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/traits/Car.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/Car.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/traits/Dog.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/Dog.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/traits/Dog.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/Dog.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/traits/Employee.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/Employee.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/traits/Employee.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/Employee.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/traits/Human.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/Human.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/traits/Human.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/Human.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/traits/SpeakingTrait.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/SpeakingTrait.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/traits/SpeakingTrait.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/SpeakingTrait.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/traits/UserTrait.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/UserTrait.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/traits/UserTrait.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/UserTrait.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/traits/VehicleTrait.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/VehicleTrait.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/traits/VehicleTrait.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/VehicleTrait.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/traits/WalkingTrait.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/WalkingTrait.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/traits/WalkingTrait.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/WalkingTrait.groovy
diff --git a/core-groovy/src/main/groovy/com/baeldung/traits/WheelTrait.groovy b/core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/WheelTrait.groovy
similarity index 100%
rename from core-groovy/src/main/groovy/com/baeldung/traits/WheelTrait.groovy
rename to core-groovy-modules/core-groovy/src/main/groovy/com/baeldung/traits/WheelTrait.groovy
diff --git a/core-groovy/src/main/resources/binaryExample.jpg b/core-groovy-modules/core-groovy/src/main/resources/binaryExample.jpg
similarity index 100%
rename from core-groovy/src/main/resources/binaryExample.jpg
rename to core-groovy-modules/core-groovy/src/main/resources/binaryExample.jpg
diff --git a/core-groovy/src/main/resources/fileContent.txt b/core-groovy-modules/core-groovy/src/main/resources/fileContent.txt
similarity index 100%
rename from core-groovy/src/main/resources/fileContent.txt
rename to core-groovy-modules/core-groovy/src/main/resources/fileContent.txt
diff --git a/core-groovy/src/main/resources/ioData.txt b/core-groovy-modules/core-groovy/src/main/resources/ioData.txt
similarity index 100%
rename from core-groovy/src/main/resources/ioData.txt
rename to core-groovy-modules/core-groovy/src/main/resources/ioData.txt
diff --git a/core-groovy/src/main/resources/ioInput.txt b/core-groovy-modules/core-groovy/src/main/resources/ioInput.txt
similarity index 100%
rename from core-groovy/src/main/resources/ioInput.txt
rename to core-groovy-modules/core-groovy/src/main/resources/ioInput.txt
diff --git a/core-groovy/src/main/resources/ioOutput.txt b/core-groovy-modules/core-groovy/src/main/resources/ioOutput.txt
similarity index 100%
rename from core-groovy/src/main/resources/ioOutput.txt
rename to core-groovy-modules/core-groovy/src/main/resources/ioOutput.txt
diff --git a/core-groovy/src/main/resources/logback.xml b/core-groovy-modules/core-groovy/src/main/resources/logback.xml
similarity index 100%
rename from core-groovy/src/main/resources/logback.xml
rename to core-groovy-modules/core-groovy/src/main/resources/logback.xml
diff --git a/core-groovy/src/main/resources/sample.png b/core-groovy-modules/core-groovy/src/main/resources/sample.png
similarity index 100%
rename from core-groovy/src/main/resources/sample.png
rename to core-groovy-modules/core-groovy/src/main/resources/sample.png
diff --git a/core-groovy/src/main/resources/utf8Content.html b/core-groovy-modules/core-groovy/src/main/resources/utf8Content.html
similarity index 100%
rename from core-groovy/src/main/resources/utf8Content.html
rename to core-groovy-modules/core-groovy/src/main/resources/utf8Content.html
diff --git a/core-groovy/src/test/groovy/com/baeldung/closures/ClosuresUnitTest.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/closures/ClosuresUnitTest.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/closures/ClosuresUnitTest.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/closures/ClosuresUnitTest.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/date/DateTest.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/date/DateTest.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/date/DateTest.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/date/DateTest.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/file/ReadFileUnitTest.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/file/ReadFileUnitTest.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/file/ReadFileUnitTest.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/file/ReadFileUnitTest.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/groovy/sql/SqlTest.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/groovy/sql/SqlTest.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/groovy/sql/SqlTest.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/groovy/sql/SqlTest.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/io/DataAndObjectsUnitTest.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/io/DataAndObjectsUnitTest.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/io/DataAndObjectsUnitTest.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/io/DataAndObjectsUnitTest.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/io/ReadExampleUnitTest.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/io/ReadExampleUnitTest.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/io/ReadExampleUnitTest.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/io/ReadExampleUnitTest.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/io/TraverseFileTreeUnitTest.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/io/TraverseFileTreeUnitTest.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/io/TraverseFileTreeUnitTest.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/io/TraverseFileTreeUnitTest.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/io/WriteExampleUnitTest.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/io/WriteExampleUnitTest.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/io/WriteExampleUnitTest.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/io/WriteExampleUnitTest.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/json/JsonParserTest.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/json/JsonParserTest.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/json/JsonParserTest.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/json/JsonParserTest.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/strings/ConcatenateTest.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/strings/ConcatenateTest.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/strings/ConcatenateTest.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/strings/ConcatenateTest.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/strings/StringMatchingSpec.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/strings/StringMatchingSpec.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/strings/StringMatchingSpec.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/strings/StringMatchingSpec.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/stringtoint/ConvertStringToInt.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtoint/ConvertStringToInt.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/stringtoint/ConvertStringToInt.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtoint/ConvertStringToInt.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/stringtypes/CharacterInGroovy.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtypes/CharacterInGroovy.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/stringtypes/CharacterInGroovy.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtypes/CharacterInGroovy.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/stringtypes/DollarSlashyString.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtypes/DollarSlashyString.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/stringtypes/DollarSlashyString.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtypes/DollarSlashyString.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/stringtypes/DoubleQuotedString.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtypes/DoubleQuotedString.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/stringtypes/DoubleQuotedString.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtypes/DoubleQuotedString.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/stringtypes/SingleQuotedString.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtypes/SingleQuotedString.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/stringtypes/SingleQuotedString.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtypes/SingleQuotedString.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/stringtypes/SlashyString.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtypes/SlashyString.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/stringtypes/SlashyString.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtypes/SlashyString.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/stringtypes/Strings.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtypes/Strings.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/stringtypes/Strings.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtypes/Strings.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/stringtypes/TripleDoubleQuotedString.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtypes/TripleDoubleQuotedString.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/stringtypes/TripleDoubleQuotedString.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtypes/TripleDoubleQuotedString.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/stringtypes/TripleSingleQuotedString.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtypes/TripleSingleQuotedString.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/stringtypes/TripleSingleQuotedString.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/stringtypes/TripleSingleQuotedString.groovy
diff --git a/core-groovy/src/test/groovy/com/baeldung/traits/TraitsUnitTest.groovy b/core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/traits/TraitsUnitTest.groovy
similarity index 100%
rename from core-groovy/src/test/groovy/com/baeldung/traits/TraitsUnitTest.groovy
rename to core-groovy-modules/core-groovy/src/test/groovy/com/baeldung/traits/TraitsUnitTest.groovy
diff --git a/core-groovy-modules/pom.xml b/core-groovy-modules/pom.xml
new file mode 100644
index 0000000000..2fd4da17f9
--- /dev/null
+++ b/core-groovy-modules/pom.xml
@@ -0,0 +1,25 @@
+
+
+ 4.0.0
+ core-groovy-modules
+ core-groovy-modules
+ pom
+
+
+ com.baeldung
+ parent-modules
+ 1.0.0-SNAPSHOT
+
+
+
+ core-groovy
+ core-groovy-2
+ core-groovy-collections
+ core-groovy-strings
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
index 83d1e287f7..8fa7c1e2b4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -372,10 +372,7 @@
cloud-foundry-uaa
code-generation
- core-groovy
- core-groovy-2
- core-groovy-collections
- core-groovy-strings
+ core-groovy-modules
core-java-modules
@@ -834,11 +831,8 @@
cloud-foundry-uaa
code-generation
- core-groovy
- core-groovy-2
- core-groovy-collections
- core-groovy-strings
-
+ core-groovy-modules
+
core-java-modules
couchbase