Maven is a new project management and comprehension tool which provides an elegant way to share build logic across projects. In terms of capabilities, Maven is an improvement to Apache Ant-thanks to numerous plug-ins and built-in integration with unit testing frameworks such as JUnit. Tired of writing the same build logic for every project? Using Maven, you can leverage the experience of the community to avoid the tedious process of creating yet another build script for each new project.
Maven: A Developer's Notebook begins by introducing you to the concept of project object model (POM), and then offers further details on the essential features of Maven. Like all titles in O'Reilly's Developer's Notebook series, this no-nonsense book skips the boring prose and cuts right to the chase. It's an approach that forces you to get your hands dirty by working through a series of poignant labs-exercises that speak to you instead of at you.
Plus, Maven: A Developer's Notebook is the first book on the subject to hit the market, so you know the information is fresh and timely. If you're a Java programmer, you'll be armed with all the critical information you need to get up to speed on this powerful new build tool. You'll discover how Maven can help you:
manage a project's build, reporting, and documentation, all from a central piece of information
break a complex project into a series of smaller subprojects
report on code quality, unit tests, code duplication, and project activity
create a custom remote repository
build simple and complex plug-ins
In the end, you'll find yourself spending less time working on your project's build system and more time working on your project's code.
Chapter 1 Maven Jump-Start
Starting a New Project
Using Maven Behind a Proxy
Compiling and Testing a Project
Working with the Project Object Model
Listing Available Goals
Producing Debug Information
Adding a Dependency
Depending on Snapshots
Performing an Offline Build
Using the Maven Console
Generating an Eclipse Project
Using the Eclipse Maven Plug-in
Generating an Ant Build File
Migrating a Project from Ant to Maven
Generating Project Documentation
Telling Maven About Your Team
Pointing Maven at Source Control
Creating a Project Web Site
Customizing Site Reports
Chapter 2 Customizing Maven
Installing a Plug-in from a Remote Repository
Customizing Plug-in Behavior
Writing a Custom Goal
Defining a preGoal
Defining Custom Properties
Running the Program from a Custom Goal
Defining the Default Goal
Customizing Site Look and Feel
Using the FAQ Plug-in
Chapter 3 Multiproject Maven
Dividing and Conquering
Using POM Inheritance
Writing the Quote Generator
Sharing Artifacts Through the Local Maven Repository
Using the WAR Plug-in
Using the Jetty Plug-in to Start a Web Application
In addition to being an active member of the Maven development team, Vincent Massol is the creator of the Jakarta Cactus framework. After having spent four years as a technical architect on several major projects (mostly J2EE), Vincent is now the co-founder and CTO of Pivolis, a company specializing in applying agile methodologies to offshore software development. He lives in the City of Light, Paris, France.
Tim M O'Brien is a professional singer and programmer living and working in the Chicago area. He prefers Emacs to vi. Tim discovered programming on a TRS-80, and went on to study (and subsequently forget) Electrical Engineering at UVA. In his free time, Tim likes to sleep, study music, build toys with microcontrollers, and participate in open source projects. Tim is active in the Jakarta Commons project.
In addition to being an active member of the Maven development team, Vincent Massol is the creator of the Jakarta Cactus framework. After having spent four years as a technical architect on several major projects, Vincent is now the cofounder and CTO of Pivolis, a company specializing in applying agile methodologies to offshore software development. He lives in the City of Light, Paris, France.
Timothy O'Brien is an independent consultant who lives and works in Evanston, IL, just outside Chicago. Tim is currently focused on helping clients adopt and evaluate open source software. He prefers Emacs to vi. Tim discovered programming on a TRS-80, and went on to study (and subsequently forget) electrical engineering at UVA. In his free time, Tim likes to sleep, study music, build toys with microcontrollers, and participate in open source projects. Tim contributes to the documentation and implementation of various projects at the ASF.
Our look is the result of reader comments, our own experimentation, and feedback from distribution channels. Distinctive covers complement our distinctive approach to technical topics, breathing personality and life into potentially dry subjects.
The Developer's Notebook series is modeled on the tradition of laboratory notebooks. Laboratory notebooks are an invaluable tool for researchers and their successors.
The purpose of a laboratory notebook is to facilitate the recording of data and conclusions as the work is being conducted, creating a faithful and immediate history. The notebook begins with a title page that includes the owner's name and the subject of research. The pages of the notebook should be numbered and prefaced with a table of contents. Entries must be clear, easy to read, and accurately dated; they should use simple, direct language to indicate the name of the experiment and the steps taken. Calculations are written out carefully and relevant thoughts and ideas recorded. Each experiment is introduced and summarized as it is added to the notebook. The goal is to produce comprehensive, clearly organized notes that can be used as a reference. Careful documentation creates a valuable record and provides a practical guide for future developers.
Colleen Gorman was the production editor and proofreader, and Audrey Doyle was the copyeditor for Maven: A Developer's Notebook . Adam Witwer and Mary Anne Weeks Mayo provided quality control. Johnna VanHoose Dinse wrote the index.
Emma Colby designed the cover of this book, based on a series design by Edie Freedman. Karen Montgomery produced the cover layout with Adobe InDesign CS using the Officina Sans and JuniorHandwriting fonts.
Edie Freedman and David Futato designed the interior layout. This book was converted by Joe Wizda to FrameMaker 5.5.6 with a format conversion tool created by Erik Ray, Jason McIntosh, Neil Walls, and Mike Sierra that uses Perl and XML technologies. The text font is Adobe Boton; the heading font is ITC Officina Sans; the code font is LucasFont's TheSans Mono Condensed, and the handwriting font is a modified version of JuniorHandwriting made by Tepid Monkey Foundry, and modified by O'Reilly. The illustrations that appear in the book were produced by Robert Romano, Jessamyn Read, and Lesley Borash using Macromedia FreeHand MX and Adobe Photoshop CS. This colophon was written by Colleen Gorman.