This project contains many examples on how dotCMS plugins can customize and extend dotCMS. The plugins use dotCMS's OSGi capabilities to extend and override dotCMS in different ways.
These plugins all use maven for building. In each sub directory, you can run
mvn clean jar
which will build the plugin, which can then be uploaded into dotCMS.
If you are interested in seeing other working examples of plugins, you should visit dotcms's public plugin repo https://github.com/dotcms-plugins
git clone https://github.com/dotCMS/plugin-seeds.git
cd plugin-seeds