Skip to main content

Posts

Showing posts from 2018

Introduction to Spring Roo Shell

Spring Roo is available as a CLI shell-style application and as an STS plugin. Since I'm not a fan of the Eclipse IDE (no offense and I don't need to debate it), the focus will be on using the CLI. The first step is to download the latest release from the Spring Roo project homepage . Before getting too far into it, it will be helpful to understand some basics about the Roo Shell (RS) application. The startup script can be used to bootstrap RS commands or to simply launch the shell program when no commands are included. The commands are applied relative to the current working directory, so be prepared for that. The recommended approach is to unpack the Spring Roo distribution to its own folder, add its /bin directory to the path, and execute RS from your project directories. This will become more obvious in the examples below. To keep it simple, I've created a directory under my Linux home directory and unpacked the distro: ~ $ mkdir spring-roo ~ $ cd spring-roo/

The Promise of Spring Roo

I've been thinking about a project scaffolding tool for Java for a long time now. Many modern technologies now come with CLIs that can lay down project skeletons and add conventional concerns by simply executing command line actions. This scaffolding, as it has come to be known, jump-starts project work significantly by laying down the typical boilerplate and, in many cases, simplifies the wiring of ancillary technologies. As a top-tier technology, Java has benefited from the many available IDEs that also provide scaffolding-like functionality. These IDEs, and even Maven archetypes to some extent, provide very powerful tools for project foundations and instrumentation of specialized components. You are even able to produce your own extension, provided you're willing to figure out some of the rather obscure mechanisms to do so. However, architectural patterns change very rapidly and IDEs fail to keep pace. Plus, the IDE capabilities are usually driven through user interface