Home Page Icon
Home Page
Table of Contents for
Cover
Close
Cover
by Sonatype Company
Maven: The Definitive Guide
A Note Regarding Supplemental Files
Preface
Maven... What Is It?
Font Conventions
Maven Writing Conventions
Using Code Examples
Safari® Books Online
How to Contact Us
Acknowledgments
I. Introduction
1. Introducing Apache Maven
Convention over Configuration
A Common Interface
Universal Reuse Through Maven Plugins
Conceptual Model of a “Project”
Is Maven an Alternative to XYZ?
Comparing Maven and Ant
Summary
2. Installing and Running Maven
Verify Your Java Installation
Downloading Maven
Installing Maven
Installing Maven on Mac OS X
Installing Maven on Microsoft Windows
Installing Maven on Linux
Installing Maven on FreeBSD or OpenBSD
Testing a Maven Installation
Maven Installation Details
User-Specific Configuration and Repository
Upgrading a Maven Installation
Getting Help with Maven
Using the Maven Help Plugin
Describing a Maven Plugin
About the Apache Software License
II. Maven by Example
3. A Simple Maven Project
Introduction
Downloading This Chapter’s Example
Creating a Simple Project
Building a Simple Project
Simple Project Object Model
Core Concepts
Maven Plugins and Goals
Maven Lifecycle
Maven Coordinates
Maven Repositories
Maven’s Dependency Management
Site Generation and Reporting
Summary
4. Customizing a Maven Project
Introduction
Downloading This Chapter’s Example
Defining the Simple Weather Project
Yahoo! Weather RSS
Creating the Simple Weather Project
Customize Project Information
Add New Dependencies
Simple Weather Source Code
Add Resources
Running the Simple Weather Program
The Maven Exec Plugin
Exploring Your Project Dependencies
Writing Unit Tests
Adding Test-Scoped Dependencies
Adding Unit Test Resources
Executing Unit Tests
Ignoring Test Failures
Skipping Unit Tests
Building a Packaged Command-Line Application
5. A Simple Web Application
Introduction
Downloading This Chapter’s Example
Defining the Simple Web Application
Creating the Simple Web Project
Configuring the Jetty Plugin
Adding a Simple Servlet
Adding J2EE Dependencies
Conclusion
6. A Multimodule Project
Introduction
Downloading This Chapter’s Example
The Simple Parent Project
The Simple Weather Module
The Simple Web Application Module
Building the Multimodule Project
Running the Web Application
7. Multimodule Enterprise Project
Introduction
Downloading This Chapter’s Example
Multimodule Enterprise Project
Technology Used in This Example
The Simple Parent Project
The Simple Model Module
The Simple Weather Module
The Simple Persist Module
The Simple Web Application Module
Running the Web Application
The simple-command Module
Running simple-command
Conclusion
Programming to Interface Projects
III. Maven Reference
8. Optimizing and Refactoring POMs
Introduction
POM Cleanup
Optimizing Dependencies
Optimizing Plugins
Optimizing with the Maven Dependency Plugin
Final POMs
Conclusion
9. The Project Object Model
Introduction
The POM
The Super POM
The Simplest POM
The Effective POM
Real POMs
POM Syntax
Project Versions
Version build numbers
SNAPSHOT versions
Property References
Project Dependencies
Dependency Scope
Optional Dependencies
Dependency Version Ranges
Transitive Dependencies
Transitive dependencies and scope
Conflict Resolution
Dependency Management
Project Relationships
More on Coordinates
Multimodule Projects
Project Inheritance
POM Best Practices
Grouping Dependencies
Multimodule Versus Inheritance
Simple project
Multimodule enterprise project
Prototype parent projects
10. The Build Lifecycle
Introduction
Clean Lifecycle (clean)
Default Lifecycle (default)
Site Lifecycle (site)
Package-Specific Lifecycles
JAR
POM
Maven Plugin
EJB
WAR
EAR
Other Packaging Types
Common Lifecycle Goals
Process Resources
Compile
Process Test Resources
Test Compile
Test
Install
Deploy
11. Build Profiles
What Are They For?
What Is Build Portability?
Nonportable builds
Environment portability
Organizational (in-house) portability
Wide (universal) portability
Selecting an Appropriate Level of Portability
Portability Through Maven Profiles
Overriding a Project Object Model
Profile Activation
Activation Configuration
Activation by the Absence of a Property
External Profiles
Settings Profiles
Global Settings Profiles
Listing Active Profiles
Tips and Tricks
Common Environments
Protecting Secrets
Platform Classifiers
Summary
12. Maven Assemblies
Introduction
Assembly Basics
Predefined Assembly Descriptors
Building an Assembly
Assemblies as Dependencies
Assembling Assemblies via Assembly Dependencies
Overview of the Assembly Descriptor
The Assembly Descriptor
Property References in Assembly Descriptors
Required Assembly Information
Controlling the Contents of an Assembly
Files Section
fileSets Section
Default Exclusion Patterns for fileSets
dependencySets Section
Customizing dependency output location
Interpolation of properties in dependency output location
Including and excluding dependencies by scope
Fine-tuning: dependency includes and excludes
Transitive dependencies, project attachments, and project artifacts
Advanced unpacking options
Summarizing dependency sets
moduleSets Sections
Module selection
Sources section
Interpolation of outputDirectoryMapping in moduleSets
Binaries section
moduleSets, parent POMs, and the binaries section
Repositories Section
Managing the Assembly’s Root Directory
componentDescriptors and containerDescriptorHandlers
Best Practices
Standard, Reusable Assembly Descriptors
Distribution (Aggregating) Assemblies
Summary
13. Properties and Resource Filtering
Introduction
Maven Properties
Maven Project Properties
Maven Settings Properties
Environment Variable Properties
Java System Properties
User-Defined Properties
Resource Filtering
14. Maven and Eclipse: m2eclipse
Introduction
m2eclipse
Installing the m2eclipse Plugin
Installing Prerequisites
Installing Subclipse
Installing Mylyn
Installing AspectJ Development Tools (AJDT)
Installing the Web Tools Platform (WTP)
Installing m2eclipse
Enabling the Maven Console
Creating a Maven Project
Checking Out a Maven Project from SCM
Creating a Maven Project from a Maven Archetype
Creating a Maven Module
Create a Maven POM File
Importing Maven Projects
Importing a Maven Project
Materializing a Maven Project
Running Maven Builds
Working with Maven Projects
Adding and Updating Dependencies and Plugins
Creating a Maven Module
Downloading Source
Opening Project Pages
Resolving Dependencies
Working with Maven Repositories
Searching For Maven Artifacts and Java classes
Indexing Maven Repositories
Using the Form-Based POM Editor
Analyzing Project Dependencies in m2eclipse
Maven Preferences
Summary
15. Site Generation
Introduction
Building a Project Site with Maven
Customizing the Site Descriptor
Customizing the Header Graphics
Customizing the Navigation Menu
Site Directory Structure
Writing Project Documentation
APT Example
FML Example
Deploying Your Project Web Site
Configuring Server Authentication
Configuring File and Directory Modes
Customizing Site Appearance
Customizing the Site CSS
Create a Custom Site Template
Reusable Web Site Skins
Creating a Custom Theme CSS
Customizing Site Templates in a Skin
Tips and Tricks
Inject XHTML into HEAD
Add Links Under Your Site Logo
Add Breadcrumbs to Your Site
Add the Project Version
Modify the Publication Date Format and Location
Using Doxia Macros
16. Repository Manager
Introduction
History of Nexus
Installing Nexus
Downloading Nexus from Sonatype
Installing Nexus
Running Nexus
Post-Install Checklist
Startup Scripts for Linux
Add Nexus as a service on Red Hat, Fedora, and CentOS
Add Nexus as a service on Ubuntu
Running Nexus Behind a Proxy
Using Nexus
Browsing Repositories
Browsing Groups
Searching for Artifacts
Browsing System Feeds
Browsing Log Files and Configuration
Changing Your Password
Configuring Maven to Use Nexus Repositories
Using the Nexus Central Proxy Repository
Using Nexus for Snapshot Repositories
Adding Custom Repositories for Missing Dependencies
Adding a New Repository
Adding a Repository to a Group
Configuring Nexus
Customizing Server Configuration
Managing Repositories
Managing Groups
Managing Routes
Managing Scheduled Services
Managing Security
Managing privileges
Managing repository targets
Managing security roles
Managing users
Network Configuration
Maintaining Repositories
Uploading Artifacts to Hosted Repositories
Deploying Artifacts to Nexus
Configuring Deployment Security
Deploying Releases
Deploying Snapshots
Deploying Third-Party Artifacts
17. Writing Plugins
Introduction
Programming Maven
What Is Inversion of Control?
Introduction to Plexus
Why Plexus?
What Is a Plugin?
Plugin Descriptor
Top-Level Plugin Descriptor Elements
Mojo Configuration
Plugin Dependencies
Writing a Custom Plugin
Creating a Plugin Project
A Simple Java Mojo
Configuring a Plugin Prefix
Logging from a Plugin
Mojo Class Annotations
When a Mojo Fails
Mojo Parameters
Supplying Values for Mojo Parameters
Multivalued Mojo Parameters
Depending on Plexus Components
Mojo Parameter Annotations
Plugins and the Maven Lifecycle
Executing a Parallel Lifecycle
Creating a Custom Lifecycle
Overriding the Default Lifecycle
18. Writing Plugins in Alternative Languages
Writing Plugins in Ant
Creating an Ant Plugin
Writing Plugins in JRuby
Creating a JRuby Plugin
Ruby Mojo Implementations
Logging from a Ruby Mojo
Raising a MojoError
Referencing Plexus Components from JRuby
Writing Plugins in Groovy
Creating a Groovy Plugin
IV. Appendixes
A. Settings Details
Quick Overview
Settings Details
Simple Values
Servers
Mirrors
Proxies
Profiles
Activation
Properties
Repositories
Plugin Repositories
Active Profiles
B. Sun Specification Alternatives
Index
About the Author
Colophon
Copyright
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Next
Next Chapter
Maven: The Definitive Guide
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset