close
Apache Maven 2 Effective Implementation Table Of Contents
Back to BOOK PAGE
Table of Contents
Preface
Chapter 1: Maven in a Nutshell
Chapter 2: Staying in Control with Archiva
Chapter 3: Building an Application Using Maven
Chapter 4: Application Testing with Maven
Chapter 5: Reporting and Checks
Chapter 6: Useful Maven Plugins
Chapter 7: Maven Best Practices
Chapter 8: Continuum: Ensuring the Health of your Source Code
Chapter 9: Continuum in Depth
Chapter 10: Archiva in a Team
Chapter 11: Archetypes
Chapter 12: Maven, Archiva, and Continuum in the Enterprise
Appendix A: Troubleshooting Maven
Appendix B: Recent Maven Features
Appendix C: Migrating Archiva and Continuum Data
Index
Preface
Up
Chapter 1: Maven in a Nutshell
A whirlwind tour
Installing Maven
Creating a new project from an archetype
Building the project
Reusing builds
Adding dependencies
Adding functionality through plugins
Adding resources
Running tests
Getting help
Enhancing the development process
Viewing detailed project information
Multiple module builds
What if I need to convert an existing project?
Summary
Up
Chapter 2: Staying in Control with Archiva
Importance of a repository manager
Installing Archiva
Separating your repositories
Hooking up Maven with Archiva
Setting up a proxy
Configuring your settings.xml
Building your project
Searching for artifacts in Archiva
Deploying from Maven
Creating a new user
Configuring and deploying from Maven
Deploying via web form
Summary
Up
Chapter 3: Building an Application Using Maven
Introducing the sample project
Setting up a multi-module build
Creating the parent POM
Creating the modules
Dependency management
Fleshing out the example application
Creating an organization POM
Configuring basic reports
Preparing for non-code modules
Creating a modules tree
Adding a documentation module
Building the site automatically
Assembling the site for distribution
Adding site resources
Adding a skin
Distributing the application
Generating the runtime environment with the App Assembler plugin
Generating the assembly archive
Adding the documentation to the distribution archive
Summary
Up
Chapter 4: Application Testing with Maven
Types of testing in Maven
Unit testing (or code testing)
Integration testing (or module testing)
Functional and other types of testing
Working with tests
Surefire plugin configuration
Controlling the execution of tests
Inclusion and exclusion of tests
Running specific tests from the command line
Skipping tests temporarily
Producing a report for the test results
Reviewing test coverage
Coverage and multimodule projects
Integration, functional, and other testing
Running integration tests using naming patterns
Operating the Selenium server
Deploying the application to a container
Simplifying test grouping with TestNG
Using a separate integration test module
Altering integration tests with profiles
Using TestNG parameters
Measuring coverage for integration tests
Summary
Up
Chapter 5: Reporting and Checks
Review: Example application
Constructing the developer's site
Maven reports
Adding reports to the project
Configuring plugins for both reporting and the build
Configuring reports in the site life cycle
Setting up quality checks
Setting a minimum coverage requirement
Best practices for configuring coverage checks
Reporting and quality tools
Dependencies
Javadoc
Checkstyle
PMD
FindBugs
Clirr
Other tools
Reporting best practices
Choosing reports
Site deployment
Introducing and selecting failure thresholds
Tying it all together
Dashboard plugin
Sonar
Summary
Up
Chapter 6: Useful Maven Plugins
The Remote Resources plugin
Creating a Remote Resource bundle
Processing Remote Resources in a project
The Build Number plugin
The Shade plugin
Building a standalone artifact
Shading dependencies
The Build Helper plugin
Adding source directories
Attaching arbitrary artifacts
Other goals
The AntRun plugin and scripting languages
Running simple tasks
Interacting with the Maven project
Converting Ant or Maven 1 builds
Maven plugins written in Ant
Other scripting languages
The Exec plugin
Adding the Exec plugin to the Build life cycle
Running the Exec plugin standalone
Summary
Up
Chapter 7: Maven Best Practices
Preparing the development environment
Maven installation and user settings
Encrypting server passwords
Project settings
Configuring repositories
Keeping it simple
Using conventions
Using inheritance
Decomposing the build into modules
Aligning the source structure
Selecting group and artifact identifiers
Building modules together
Each module should be independently useful
Watching the dependencies
Separating API from implementation
Trimming dependencies
Dependency version management
Profiles and pipelining
Scripting and writing plugins
Creating and using archetypes
Build portability
Setting expectations
Hard coding
Portable profiles
Portable artifacts
Resource filtering
Shared resources
Build reproducibility
Summary
Up
Chapter 8: Continuum: Ensuring the Health of your Source Code
Knowing when your build breaks
Setting up Continuum
Setting up a source repository
Installing prerequisites
Installing and configuring Continuum
Using Continuum
At a glance
The build queues
The build definition
Project group build definition
Project build definition
The notifiers
Different types of notifiers
Configuring notifiers in Maven
The Build results
Dependency changes
Installations and build environments
Installations
Build environments
Summary
Up
Chapter 9: Continuum in Depth
Releasing projects
Release early, release often
Maven release process
Release profile
Releasing projects using Continuum
Preparing a release
Finalizing a release
Viewing release history
Other types of releases
Troubleshooting releases in Continuum
Build pipelining and multiple build definitions
Parallel builds
How it works
Configuring parallel builds
Distributed builds
Master and slave
Configuring distributed builds
Doing project releases on a build agent
Maintenance
Configuring multiple local repositories
Cleaning up local repositories
Cleaning up directories
Summary
Up
Chapter 10: Archiva in a Team
Roles and permissions
Introducing repository groups
Configuring and using repository groups
RSS feeds—discovering new artifacts in your repository
Repository level feeds
Artifact level feeds
Deleting artifacts in your repository
The Archiva reports
Repository statistics
Repository health
The Archiva consumers
What is a consumer?
Archiva's maintenance-savvy consumers
Purging outdated snapshots
Correcting Maven metadata
Creating missing checksums
Database cleanup consumers
Summary
Up
Chapter 11: Archetypes
What are Maven archetypes?
Benefits of Maven archetypes
Generating projects
From archetype:create to archetype:generate
Using archetypes within multi-module projects
Common archetypes
Maven site archetype
Maven Mojo (plugin) archetype
Maven simple J2EE archetype
The AppFuse Spring archetype
Other examples
Writing a new archetype
Creating an archetype from a skeleton
Using the custom archetype
Managing catalogs
Summary
Up
Chapter 12: Maven, Archiva, and Continuum in the Enterprise
Configuring security
A brief look at Redback
Setting up security for multiple teams in Continuum
Setting up security for multiple teams in Archiva
Additional Redback configuration
Using LDAP
Interfacing with other tools in the enterprise
Continuum web services
Building the Continuum plugin
Using Continuum's web services
Archiva web services
Building the Archiva plugin
Using Archiva's web services
Summary
Up
Appendix A: Troubleshooting Maven
Examining Maven output
Using debug mode
Confirming the expected models
Analyzing dependencies
Download problems
Up
Appendix B: Recent Maven Features
Server password encryption
Reactor project selection
Resuming a failed build
Building a subset of modules
The Reactor plugin
Building modules with local changes
Reconfiguring default life cycle goals
Parallel artifact resolution
Up
Appendix C: Migrating Archiva and Continuum Data
Using a different database
Database backup and migrating between versions
Migrating Continuum
Migrating Archiva
Up
Index
Back to BOOK PAGE