did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780321356994

IBM Rational ClearCase, Ant, and CruiseControl The Java Developer's Guide to Accelerating and Automating the Build Process

by
  • ISBN13:

    9780321356994

  • ISBN10:

    0321356993

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2006-05-24
  • Publisher: IBM Press
  • Purchase Benefits
List Price: $49.99

Summary

Create software more efficiently using Rational ClearCase, the industry-leading SCM tool!

Author Biography

Kevin A. Lee has more than a decade of experience in implementing software build and release management practices on projects of various sizes. He joined Rational Software, UK in 2000 as a technical field representative. Today he is still helping customers ensure successful deployment and adoption of the IBM Rational Software Development Platform. In addition to delivering presentations at IBM Rational user conferences worldwide and writing articles for IBM developerWorks, he maintains a Web site dedicated to build and release management (www.buildmeister.com). He also contributes to related open-source projects such as Apache Ant and CruiseControl. In his previous positions at large telecom organizations, he deployed the Rational Software Configuration Management (SCM) toolset on multisite enterprise projects. He holds a B.S. in computer science from the University of East Anglia.

Table of Contents

Preface xix
Part I Overview
1(16)
Introduction to Software Build and Release Management
3(14)
Software Build and Release Management
3(6)
What's in a Name? Definitions
3(2)
How It All Comes Together: Process
5(2)
A Bit More on Software Build Management
7(1)
A Bit More on Software Release Management
8(1)
Challenges in Building and Releasing Software
9(3)
What Exactly Is It? Traceability and Completeness
10(1)
Let's Go Again: Repeatability and Reliability
11(1)
Faster Than a Speeding Bullet: Agility and Speed
11(1)
An Integrated Build and Release Life-Cycle Solution
12(2)
Manage Your Configuration Before It Manages You
12(1)
Automate
12(1)
Putting It All Together
13(1)
The Sample Scenario
14(1)
Welcome to RationalBank
14(1)
Summary
15(2)
Part II Environment
17(44)
Tools of the Trade
19(18)
Aims of This Chapter
19(1)
The Software Build and Release Toolbox
19(8)
IBM Rational ClearCase
20(1)
IBM Rational ClearQuest
21(1)
Apache Ant
22(1)
CruiseControl
22(1)
JUnit
23(2)
Perl
25(1)
XML
25(1)
Other Build Tools
26(1)
What About My IDE?
27(1)
A Review of ClearCase Concepts
27(8)
ClearCase Fundamentals
28(4)
Next Stop, UCM
32(3)
Summary
35(2)
Configuring Your SCM Environment
37(24)
Aims of This Chapter
37(1)
The Build Tools Directory Structure
38(1)
Creating a Base ClearCase Build Tools Structure
39(4)
Create a Build Tools VOB
39(1)
Create a Build Tools View
40(1)
Create the Build Tools Directories
40(1)
Import the Build Tools
41(1)
Label the Build Tools
41(1)
Make the Build Tools Directory Available to Your Users
42(1)
Creating a UCM Build Tools Structure
43(7)
Create a UCM Project VOB
43(1)
Create a Build Tools VOB
44(1)
Create the Build Tools Components
44(2)
Create a Build Tools UCM Project
46(1)
Create a Build Tools View
47(1)
Import the Build Tools
48(1)
Baseline the Build Tools
49(1)
Make the Build Tools Available to Your Users
49(1)
Clean up the Temporary View
50(1)
Build and Release Baselining Strategies
50(3)
Applying Base ClearCase Build Labels and Attributes
51(1)
Applying UCM Baselines
52(1)
Build and Release Branching Strategies
53(6)
Active Development Line
54(1)
Release-Prep Line
55(1)
Promotion Line
56(3)
Build and Release Workspace Strategies
59(1)
Summary
60(1)
Part III Definition
61(48)
Defining Your Build and Release Scripts
63(18)
Aims of This Chapter
63(1)
First Steps with Ant
64(16)
Download and Install Ant
64(1)
Configure Eclipse to Use Your JavaTools Ant
65(1)
The Build File
66(1)
Build File Editing with Eclipse
66(1)
Define the Project
67(1)
Initialize Properties
67(1)
Define the CLASSPATH
68(2)
Create a Clean Environment
70(1)
Compile the Files
70(1)
Test the Compiled Code
71(3)
The Completed Build File
74(1)
Execute the Build File
75(2)
Build File Execution with Eclipse
77(3)
Debug Your Build Files
80(1)
Summary
80(1)
Apache Ant Best Practices
81(28)
Aims of This Chapter
81(1)
Property Files
81(6)
The Configurable Build
82(2)
Automated Baseline Numbering
84(2)
Reusing Prebuilt Libraries
86(1)
Ant ClearCase Integration
87(4)
Downloading and Installing clearantlib
88(2)
Using the Library
90(1)
Project Support
91(16)
Cumulative Targets
92(1)
Reusable Routines
92(3)
Reusable Libraries
95(5)
Build File Chaining
100(1)
Conditional Execution
100(2)
Groovy Ant Scripting
102(4)
Build Script Documentation
106(1)
Summary
107(2)
Part IV Execution
109(54)
Running Your Build Scripts
111(20)
Aims of This Chapter
111(1)
First Steps with CruiseControl
111(19)
The Manual Approach
112(1)
The Automatic Approach
112(1)
Download and Install CruiseControl
113(2)
Create a Workspace
115(2)
Create a Project Build Environment
117(2)
Define the Project
119(1)
Define Properties
120(1)
Define Listeners
120(1)
Define Bootstrappers
121(1)
Define SourceControls: Check for Modifications
121(1)
Define Builders: Schedule the Build
122(1)
Merge Test Results
123(1)
Define Publishers
124(3)
The Completed config File
127(1)
Test the config File
128(2)
Summary
130(1)
CruiseControl Best Practices
131(32)
Aims of This Chapter
131(1)
CruiseControl Build Results Web
132(7)
Download and Install Apache Tomcat
132(1)
Configure and Install the Build Results Web
133(3)
Test the Build Results Web
136(1)
Using the JMX Console
137(2)
CruiseControl ClearCase Integration
139(10)
Automating Labeling or Baselining
140(1)
Granular Source Code Checking
141(2)
ClearCase Build Label Plug-in
143(5)
Adding CruiseControl Shortcuts to the ClearCase Explorer
148(1)
Scheduling
149(6)
Continuous Integration Build
150(1)
Nightly Build
150(1)
Forced Nightly Build
151(1)
Fallback Build
151(1)
Index Build
152(1)
Mixed Build
153(1)
Dependent Build
154(1)
Publishing
155(7)
Automated Deployment
156(1)
Publishing Criteria
157(1)
Continuous Staging
158(2)
CruiseControl RSS Feed
160(2)
Summary
162(1)
Part V Reporting
163(66)
Baseline and Change Request Reports
165(30)
Aims of This Chapter
165(1)
Generating Base ClearCase Baseline Reports
166(7)
Using the ClearCase Command Line
166(3)
Using Perl
169(4)
Generating UCM Baseline Reports
173(5)
Using the ClearCase Command Line
174(1)
Using Perl
175(3)
Generating Change Request Reports
178(7)
Using Perl and the ClearQuest API
178(4)
Creating a Consolidated Change Request Report
182(3)
Generating an RSS Feed from ClearQuest Change Requests
185(8)
A Sample RSS Feed
185(2)
Creating the Perl Script
187(3)
Automating Report Creation Using Ant
190(1)
Subscribing to the Feed
190(2)
Automating Report Generation Using CruiseControl
192(1)
Further Customizations
192(1)
Summary
193(2)
Build Reporting and Auditing
195(34)
Aims of This Chapter
195(1)
Reporting and XML
196(4)
Baseline Reports in XML
196(1)
An XML DTD for Baselines
197(3)
Generating XML Formatted ClearCase Baseline Reports
200(7)
Using clearantlib to Generate Label and Baseline Reports
200(2)
Creating an XSLT Stylesheet
202(5)
Extending CruiseControl by Modifying the Build Results Web
207(8)
Generating an XML Baseline Report
208(1)
Merging the XML Baseline Report into the CruiseControl Log
209(1)
Adding a ClearCase Tab to the CruiseControl Build Results Web
210(2)
Creating an XSLT Stylesheet
212(2)
Deploying the Modified Build Results Web
214(1)
Further Customizations
215(1)
ClearCase Build Auditing
215(13)
What Is a Derived Object?
216(1)
What Is a Configuration Record?
217(1)
Auditing Ant Builds with ClearCase
218(5)
Executing an Audited Build Using Eclipse
223(2)
Viewing a Configuration Record Using Eclipse
225(2)
Executing an Audited Build Using CruiseControl
227(1)
Summary
228(1)
Part VI Release
229(62)
The Art of Releasing
231(28)
Aims of This Chapter
231(1)
Foundations for the Release
232(6)
The Deployment Unit
232(2)
The Deployment Boundary
234(1)
The Deployment Life Cycle
235(2)
Deployment Roles
237(1)
Constructing a Release Build
238(3)
The Staging Process
238(2)
Automating Staging
240(1)
Constructing a Release Build Using Base ClearCase
241(5)
Create the Release Build Environment
241(2)
Implement Critical Changes and Fixes
243(1)
Execute the Release Build
243(1)
Stage the Release Build Outputs
244(2)
Reusing Staged Objects
246(1)
Constructing a Release Build Using UCM
246(9)
Create the Release Build Environment
246(2)
Implement Critical Changes and Fixes
248(1)
Execute the Release Build
248(2)
Stage the Release Build Outputs
250(3)
Reusing Staged Objects
253(2)
Assembling Staged Objects for Deployment
255(2)
Create a Deployment Component
255(1)
Create an Assembly Project
255(2)
Create the Deployment Unit
257(1)
Summary
257(2)
Release Packaging and Deployment
259(32)
Aims of This Chapter
259(1)
Release Packaging
260(6)
Creating Manifest Files
260(1)
Creating Java Archives
261(1)
Creating Java Web and Enterprise Archives
262(2)
A Complete Package Target
264(2)
Automating the Deployment Process
266(11)
Introduction to Build and Deployment Tracking
266(1)
Install Build and Deployment Tracking
267(1)
Integrate CruiseControl with Build Tracking
268(4)
Customize the Deployment Environment
272(1)
Create the Deployment Unit File
273(2)
Execute the Deployment
275(2)
Release Deployment
277(12)
Locating the Files to Deploy
278(4)
Deploying to File Systems
282(1)
Deploying to Web Servers
283(2)
Deploying to Application Servers
285(2)
Interactive Deployment
287(2)
Summary
289(2)
Part VII Conclusion
291(24)
Putting It All Together
293(22)
Revisiting Software Build and Release Management
293(6)
The Last Word on Software Build Management
293(2)
The Last Word on Software Release Management
295(1)
Overcoming the Challenges
296(3)
Implementing Your Own Process and Environment
299(5)
Start with a Strong Base
299(1)
Automate Only What You Need To
300(1)
Find Your Project Rhythm
301(2)
Have Fun
303(1)
The Working Example Revisited
304(9)
The RationalBank Scenario
304(1)
The RationalBank SCM Environment
304(1)
The RationalBank Project Rhythm
305(2)
Definition of Build Scripts
307(4)
Execution of Build Scripts
311(2)
Reporting
313(1)
Releasing and Deployment
313(1)
Summary
313(2)
Glossary 315(10)
Bibliography 325(2)
Index 327

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program