Maven by Example
4.2. Defining the Simple Weather Project
Before we start customizing this project, let’s take a step back and talk about the simple weather project. What is it? It’s a contrived example, created to demonstrate some of the features of Maven. It is an application that is representative of the kind you might need to build. The simple weather application is a basic command-line-driven application that takes a zip code and retrieves some data from the Yahoo! Weather RSS feed. It then parses the result and prints the result to standard output.
We chose this example for a number of reasons. First, it is
straightforward. A user supplies input via the command line, the app
takes that zip code, makes a request to Yahoo! Weather, parses the
result, and formats some simple data to the screen. This example is a
main() function and some supporting classes; there is no
enterprise framework to introduce and explain, just XML parsing and
some logging statements. Second, it gives us a good excuse to
introduce some interesting libraries such as Velocity, Dom4J, and
Log4J. Although this book is focused on Maven, we won’t shy away from
an opportunity to introduce interesting utilities. Lastly, it is an
example that can be introduced, developed, and deployed in a single
Before you build this application, you should know something about the Yahoo! Weather RSS feed. To start with, the service is made available under the following terms:
The feeds are provided free of charge for use by individuals and nonprofit organizations for personal, noncommercial uses. We ask that you provide attribution to Yahoo! Weather in connection with your use of the feeds.
In other words, if you are thinking of integrating these feeds into your commercial web site, think again—this feed is for personal, noncommercial use. The use we’re encouraging in this chapter is personal educational use. For more information about these terms of service, see the Yahoo Weather! API documentation here: http://developer.yahoo.com/weather/.