The Hudson Book

Oracle, Inc.

Tim O'Brien

Manfred Moser


Eclipse Hudson is a widely used, open source continuous integration server. The Hudson Book aims to be the authoritative and up to date resource about Hudson written by the community for the community.

Table of Contents

Foreword: 1.0
1. Introducing Hudson
1.1. Continuous Integration
1.2. Minimizing Technical Debt
1.3. Push it to Production with Hudson
1.4. General Purpose Scheduler
1.5. The Hudson Community at Eclipse
1.6. The Hudson Project
1.7. Hudson’s License
2. Installing and Running Hudson
2.1. Prerequisites
2.2. Installing Hudson with the WAR File Distribution
2.3. Deploy Hudson to a Servlet Container
2.4. Installing Hudson on Ubuntu/Debian
2.5. Installing Hudson on Redhat, CentOS, and Fedora
2.6. Installing Hudson on OpenSUSE
2.7. Hudson Related Files and Directories
2.8. Backing up Hudson Data
2.9. Upgrading Hudson
2.10. Running Hudson Behind a Proxy
3. Hudson Configuration
3.1. Global Hudson Configuration
3.2. Global Properties Configuration
3.3. Configuring JDK Installations
3.4. Configuring Ant Installations
3.5. Configuring Maven Installations
3.6. Maven 3 Builder Defaults
3.7. Configuring the Shell Executable
3.8. Configuring E-mail Notification
3.9. Troubleshooting E-mail Notification
3.10. Managing Maven 3 Configuration
3.11. Configuring Global and Individual Project List Views
3.12. Hudson Monitoring with RSS
4. Securing Hudson
4.1. Security Settings Overview
4.2. Miscellaneous Security Related Settings
4.3. Authentication and Authorization
4.4. Configuring Security Realms: Authentication
4.5. Configuring an Access-control Strategy
4.6. Hudson Security Best Practises, Tips and Tricks
5. Managing Hudson Plugins
5.1. Installed Plugins
5.2. Available Plugins
5.3. Plugin Updates
5.4. Advanced Plugin Settings
5.5. HTTP Proxy Configuration
5.6. Upload Plugin
5.7. Update Site
6. Creating Hudson Projects
6.1. Creating New Hudson Projects
6.2. Configuring Common Job Configuration Settings
6.3. Configuring Free-style Projects
6.4. Configuring Multi-Configuration Projects
7. Working with Apache Maven Builds
7.1. Installing and Configuring Apache Maven
7.2. Selecting Components of your Maven and Hudson Integration
7.3. Details of Configuring Maven 3 Build Options
7.4. Details of Configuring Maven 2 (Legacy) Build Options
8. Working with Apache Ant Builds
8.1. Installing Apache Ant for Hudson
8.2. Configuring Apache Ant Builds
9. Working with Source Control
9.1. Configuring Subversion
9.2. Configuring Git
9.3. Configuring Mercurial
9.4. Configuring CVS
10. Tools Integration
10.1. Eclipse Integration
10.2. Oracle JDeveloper Team Productivity Center
10.3. Netbeans
10.4. Jetbrains IntelliJ IDEA
10.5. Hudson Integration for Android
10.6. Firefox Add-on Build Monitor
A. Creative Commons License
A.1. Creative Commons BY-NC-ND 3.0 US License
A.2. Creative Commons Notice

List of Figures

2.1. Hudson Application Window
3.1. Managing Hudson
3.2. Configuring Global Hudson Configuration
3.3. Configuring global properties
3.4. Configuring JDK Installations
3.5. Extract *zip/*.tar.gz archive Installer Configuration
3.6. Run Command Installer Configuration
3.7. Configuring Maven 3 Installations
3.8. Configuring Maven Installations
3.9. The Maven 3 Configuration Page
3.10. Managing Maven 3 Settings in Hudson
3.11. Adding a New Global View
3.12. Main Properties for Adding a New View
3.13. Configuring View Filters
3.14. Configuring the Build Status View Filter
3.15. Configuring the Job Status View Filter
3.16. Configuring the Job Type View Filter
3.17. Configuring the Other Views Filter
3.18. Configuring the Parameterized Jobs View Filter
3.19. Configuring the Regular Expression Job View Filter
3.20. Configuring the SCM Type View Filter
3.21. Configuring the Unclassified Jobs View Filter
3.22. Configuring the User Permissions for Jobs View Filter
3.23. Configuring View Columns
3.24. Adding a New Personal View (My View)
4.1. Overview of the available security settings
4.2. Unix security configuration
4.3. Security settings for using the Hudson internal database
4.4. Sign up screen for new users
4.5. User configuration
4.6. Security settings for LDAP
4.7. Matrix based security
4.8. Project-based Matrix Authorization Strategy
4.9. Project specific authorization
5.1. The Installed tab for managing the installed plugins
5.2. Install and update plugin progress screen ready to restart the server
5.3. The Available tab for installing new plugins
5.4. The Updates tab displaying available updates of installed plugins
5.5. The Advanced tab for miscellaneous plugin management tasks
6.1. Creating a New Job in Hudson
6.2. Result of New Project Creation
6.3. Configuring Project Information
6.4. Configuring Advanced Project Options
6.5. Configuring Build Triggers
6.6. Configuring Project Post-build Options
6.7. Configuring the Javadoc post build action
6.8. Project page providing access to Javadoc and latest test results
6.9. Configuring the test result aggregation post build action
6.10. Configuring the JUnit test result report post build action
6.11. Configuring the artifacts archival post build action
6.12. A project overview page for the Hudson book project with the latest build artifact available for download
6.13. A build specific page for the Hudson book build with build artifact available for download
6.14. Configuring the fingerprinting post build action
6.15. Configuring downstream builds post build action
6.16. Configuring the email notification post build action
6.17. A Discard Old Builds configuration in a child project overriding the parent project configuration.
6.18. Adding a free-style project build step
6.19. Configuration matrix parameters for multi-configuration project
6.20. Axis definition for multi-configuration project
6.21. Configuration matrix display for multi-configuration project
7.1. Configuring a Maven 3 Build Step - Default Options
7.2. Configuring a Maven 3 Build Step - Advanced Options
7.3. Configuring Project Build Options
7.4. Advanced Configuration of a Maven 2 (Legacy) Build Step
7.5. Configuring two build steps as top-level Maven invocations
8.1. Configuring an Ant Build Steps
9.1. The beginning of the list of Source Code Management plugins
9.2. Selecting an SCM in the project configuration
9.3. Global Subversion Configuration
9.4. Configuring project-specific Subversion settings
9.5. Configuring advanced project-specific Subversion settings
9.6. Configuring subversion authentication Subversion settings
9.7. Configuring Git Installations
9.8. Configuring Git user name and email values
9.9. Basic Git source control information
9.10. Configuring repository specific Git configuration
9.11. Configuring advanced Git configuration
9.12. Configuring Git merge options
9.13. Configuring Git Publisher options
9.14. Configuring Tags for Git Publisher
9.15. Configuring Branches for Git Publisher
9.16. Configuring Mercurial Installations
9.17. Configuring Mercurial Source Control Information
9.18. Global CVS Configuration
9.19. Configuring CVS Source Control Information
9.20. Configuring CVS Source Control Information
10.1. Opening the Hudson Jobs View in Eclipse
10.2. Subscribe to Build Notifications Dialogue
10.3. Hudson Jobs View in Eclipse
10.4. Hudson Jobs Summary
10.5. Viewing JUnit Test Reports from Eclipse
10.6. Contex Menu for a Specific Hudson Job
10.7. Hudson Notifications in Eclipse
10.8. Selecting the Builds View in the Show View Dialog
10.9. Hudson Server Properties Configuration
10.10. Builds List View
10.11. Context Menu for an Individual Build Plan
10.12. Individual Build Overview Display