Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant...
Transcript of Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant...
![Page 1: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/1.jpg)
Usin
g U
ML,
Pat
tern
s, an
d Ja
va
Obj
ect-O
rien
ted
Softw
are
Engi
neer
ing
Configuration & Build Management
![Page 2: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/2.jpg)
Outline of the Lecture
Purpose of Software Configuration Management (SCM)
Some Terminology Software Configuration Management Activities Outline of a Software Configuration
Management Plan • Build Management • Continous Integration
![Page 3: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/3.jpg)
Miscellaneous
• The “Zen and the Art of Motorcycle Maintenance” competition
• Prize: A 2 Gigabyte USB stick • We have a winner!
![Page 4: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/4.jpg)
![Page 5: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/5.jpg)
Miscellaneous
• The Winner is Manuel Then: Congratulations!
• Page 105 in the German Translation • Page 86 in the Paperback edition, Bantam
Edition 1975
![Page 6: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/6.jpg)
Requirements for Build Management
• Large and distributed software projects need to provide a development infrastructure with an integrated build management that supports: • Regular builds from the master directory • Automated execution of tests • E-mail notification • Determination of code metrics • Automated publishing of the applications and test
results (e.g. to a website)
• Tools for Build Management: • Unix’s Make • Ant • Maven
![Page 7: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/7.jpg)
Activities in Build Management
• The transition from source code to the executable application contains many mechanical (boring) activities: • Settings required paths and libraries • Compiling source code • Copying source files (e.g. images, sound files, start
scripts) • Setting of file permissions (e.g. to executable) • Packaging of the application (e.g. zip, tar, dmg)
• Executing these steps manually is time-consuming and the chance of introducing failures is high
• Automating these steps has its origins in Unix
![Page 8: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/8.jpg)
Example: Build Management in Unix
• The Unix command make executes compilation of large programs according to a set of dependency rules
• Dependency rule • Tree structure of prerequisites • Time stamps of files
Example of a dependency rule:
main.obj : main.c gcc -c main.c
![Page 9: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/9.jpg)
Example Makefile
project.exe : main.obj io.obj tlink main.obj, io.obj, project.exe
main.obj : main.c gcc -c main.c io.obj : io.c gcc - c io.c
![Page 10: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/10.jpg)
Make
• Make is as powerful as the existing commands it executes
• However, make has its problems: • Different shell commands are needed on different
platforms • Complex shell scripts are hard to maintain and hard to
debug
![Page 11: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/11.jpg)
Next Step: Ant, a Platform Independent Build Management Tool
• Build tool based on Java, http://ant.apache.org • Tasks get executed by invoking Java classes, not
shell scripts or shell commands • Ant allows the execution of tasks such as:
• compilation • execution • file system operations (e.g. copy, move) • archiving • deployment
• Ant has become a standard in the Java Open Source community
• Ant build files are platform independent • Ant’s build file is an XML document
![Page 12: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/12.jpg)
General Structure of Ant Build Files
![Page 13: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/13.jpg)
Examples of Ant Tasks
Each Ant Task is a Java application. Custom tasks can be implemented in Java to support custom needs.
![Page 14: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/14.jpg)
Construction of Ant Build Files
• The default name for a Ant build file is build.xml • The xml root element must be the ‘project’
element • The ‘default’ attribute of the project element is
required and specifies the default target to use
• Targets contain zero or more AntTasks • The ‘name’ attribute is required
• AntTasks are the smallest units of the build process
![Page 15: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/15.jpg)
% ant Buildfile: build.xml hello: [echo] Hello, World BUILD SUCCESSFUL Total time: 2 seconds
Ant Build File Example
<project default="hello"> <target name="hello"> <echo message="Hello, World"/> </target> </project>
Execution of build file:
![Page 16: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/16.jpg)
Maven Overview
• A Java project management and integration build tool, http://maven.apache.org/
• Maven supports the same functionality as Ant • Ant is actually integrated into Maven
• Maven’s extended functionality • Automatically generates a development website
containing • Project organization information • Project development state reports
• Based on the concept of a central project object model (POM)
![Page 17: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/17.jpg)
Maven Capabilities
• Maven is able to • Receive developer artifacts from the programmers’
SCM directory • Compile and package the source code • Download dependent artifacts from another (external)
repository • Generate Javadoc websites • Generate developer and code metrics • Generate websites containing status information to
track issues • Deploy the compiled source code and the generated
website to a webserver
![Page 18: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/18.jpg)
Modeling a Project in Maven
Project Object Model (POM) • Project name, id, description, version number • Website URL • Issue tracking URL • Mailing list URLs • SCM directory URL • Developer information • License information • Dependencies
• Name, version, location of a Java library from jar file • Project directory layout
• Specifies source code and unit test code directories
![Page 19: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/19.jpg)
Modeling a Project in Maven (UML)
Project Object Model
Project Descriptor name currentVersion organization inceptionYear description url
Developer Descriptor name id organization roles
Repository Descriptor connection developerConnection url
Build Descriptor sourceDirectory resources
![Page 20: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/20.jpg)
Example: Generating ARENA’s Development Website
• ARENA uses a SCM master directory at oose.globalse.org
• ARENA depends on the Java library servlet.jar available in the Ibiblio repository
• The ARENA website is located on the server sysiphus.in.tum.de
• Maven compiles the ARENA sources in the programmer’s directory of the developer
![Page 21: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/21.jpg)
Modeling a Project in Maven (UML)
Project Object Model
Project Descriptor name currentVersion organization inceptionYear description url
Developer Descriptor name id organization roles
Repository Descriptor connection developerConnection url
Build Descriptor sourceDirectory resources
![Page 22: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/22.jpg)
Project Descriptor for ARENA (in project.xml) <project> <!-- a unique name for this project --> <id>arena</id> <!-- a short but descriptive name for the project --> <name>ARENA</name> <currentVersion>0.9</currentVersion> <!-- details about organization who 'owns' the project --> <organization> <name>Bernd Bruegge & Allen H. Dutoit</name> <url>http://wwwbruegge.in.tum.de/</url> <logo>/images/ase_logo.gif</logo> </organization> <inceptionYear>2004</inceptionYear> <logo>/images/arena.gif</logo> <description>ARENA</description> <!-- the project home page --> <url>http://sysiphus.informatik.tu-muenchen.de/arena</url> <siteAddress>sysiphus.informatik.tu-muenchen.de </siteAddress> <siteDirectory>/www/arena</siteDirectory>
![Page 23: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/23.jpg)
The ARENA Website (Generated by Maven)
![Page 24: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/24.jpg)
Team Members and Roles in project.xml
<developers> <developer> <name>Allen Dutoit</name> <id>dutoit</id> <organization>Technische Universität München </organization> <roles> <role>Architect</role> <role>Developer</role> </roles> </developer> <developer> <name>Michael Nagel</name> <id>nagel</id> <organization>Technische Universität München </organization> <roles> <role>Developer</role> </roles> </developer> <developer> <name>Timo Wolf</name> <id>wolft</id> <organization>Technische Universität München </organization> <roles> <role>Developer</role> </roles> </developer> </developers>
![Page 25: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/25.jpg)
Generated Website contains a Description of the Team
![Page 26: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/26.jpg)
Software Configuration Management Specification in project.xml
<repository> <connection> scm|svn|http|//oose.globalse.org/svn/trunk/examples/arena </connection> <developerConnection> scm|svn|http|//oose.globalse.org/svn
</developerConnection> <url> http://oose.globalse.org/svn/trunk/examples/arena/ </url> </repository>
• The repository tag enables Maven to • map the user ids used by the SCM tool to the
developer names listed in the Maven team site • identify developers activities • identify source code changes made by the developers
![Page 27: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/27.jpg)
Generated Website: Developer Activities (last 30 days)
![Page 28: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/28.jpg)
Generated Website: Change Log (last 30 days)
![Page 29: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/29.jpg)
Build Management in the project.xml
<build> <sourceDirectory>src</sourceDirectory> <resources> <resource> <directory>src</directory> <includes> <include>**/*.properties</include> <include>**/*.gif</include> </includes> </resource> </resources> </build>
The Build tag specifies the programmer’s directory containing the source code to be used for the build
![Page 30: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/30.jpg)
Result: Website contains the current source code of ARENA
![Page 31: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/31.jpg)
Outline of the Lecture
Purpose of Software Configuration Management (SCM)
Some Terminology Software Configuration Management Activities Outline of a Software Configuration
Management Plan Build Management • Continous Integration
![Page 32: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/32.jpg)
Typical Problems and Risks in Software Projects
• Lack of project visibility • Nobody knows what is going on
• Late discovery of faults • The later a fault is found, the more expensive it is to fix
it.
• Lack of deployable software • “It worked on my machine” • Also, horizontal integration testing strategies don’t
focus on an early running system. It is often created in the last moment
• Low quality software • Managers and developers make last-minute decisions to
deliver a system developed with the above problems.
![Page 33: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/33.jpg)
Continuous Integration Motivation
• Risk #1: The later integration occurs in a project, the bigger is the risk that unexpected faults occur
• Risk #2: The higher the complexity of the software system, the more difficult it is to integrate its components
• Continous integration addresses these risks by building as early as possible and frequently
• Additional Advantages: • There is always an executable version of the system • Team members have a good overview of the project
status
![Page 34: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/34.jpg)
Definition Continuous Integration
Continuous Integration: A software development method where members of a team integrate their work frequently, usually each person integrates at least daily, leading to multiple integrations per day. Each integration is verified by an automated build including the execution of tests to detect integration errors as quickly as possible.
![Page 35: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/35.jpg)
Continuous Integration can regularly answers these Questions
• Do all the software components work together? • How much code is covered by automated tests? • Where all tests successful after the latest
change? • What is my code complexity? • Is the team adhering to coding standards? • Where there any problems with the last
deployment?
![Page 36: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/36.jpg)
Modeling a Continuous Integration System
• Functions: • Set up scheduling strategy (poll, event-based) • Detect change • Execute build script when change has been detected • Run unit test cases • Generate project status metrics • Visualize status of the projects • Move successful builds into Software repository
• Components (Subsystems) • Master Directory: Version control (IEEE: Controlled Library). • Builder Subsystem: Execute build script when a change has been
detected • Continuous Integration (CI) Server • Management Subsystem: Visualize project status via Webbrowser • Notification Subsystem: Publishes results of the build via different
channels (E-Mail Client, RSS Feed)
![Page 37: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/37.jpg)
Analysis: Functional Model for Continuous Integration
Simple Exercise: Develop the functional model!
![Page 38: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/38.jpg)
Analysis: Functional Model for Continuous Integration
![Page 39: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/39.jpg)
Design: Deployment Diagram of a Continuous Integration System
![Page 40: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/40.jpg)
Design of a Continuous Integration System
• Development Node • Manage Programmer’s Directory (IEEE: Dynamic Library) • Software Configuration Management client • Integrated Development Environment • Run build script locally using the Builder Subsystem
![Page 41: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/41.jpg)
Design of a Continuous Integration System (Deployment Diagram)
• Software Configuration Management Node • Contains the Master Directory (IEEE: Controlled Library) • Runs the Software Configuration Management Server
![Page 42: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/42.jpg)
Design of a Continuous Integration System (Deployment Diagram)
• Integration Build Node • Creates & maintains the Software Repository (IEEE: static library) • SCM Client interacts with SCM Node if (when) a change has occurred • Runs build globally using Builder when a change has been detected • Notification component publishes results of the build
• uses different channels such as E-Mail or RSS Feed
![Page 43: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/43.jpg)
Design of a Continuous Integration System (Deployment Diagram)
• Management Node • Visualize build results • Visualize project metrics • Receive notification about build status
![Page 44: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/44.jpg)
Examples of Available Continous Integration Systems
• Cockpit • CruiseControl and CruiseControl.NET • Anthill • Continuum • Hudson
List of continuous integration tools: http://confluence.public.thoughtworks.org/display/ CC/CI+Feature+Matrix
![Page 45: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/45.jpg)
CruiseControl: Subsystem Overview (not in UML!)
Source: http://cruisecontrol.sourceforge.net/overview.html
![Page 46: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/46.jpg)
Cruise Control: The Build Loop
• The daemon process checks for source code changes in the projects
• If a change has occurred, the subsystem executes the following actions: • Obtain all the build artifacts (described in
“config.xml”) • Possibly via the project.xml file (if Maven is used)
• Execute the Build file • Write the results into a log file (“xml logs”) • Send notifications to subscribers.
![Page 47: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/47.jpg)
Getting Started with CruiseControl
• Download CruiseControl binary distribution • http://cruisecontrol.sourceforge.net/download.html
• Unzip downloaded archive • Run cruisecontrol.sh (.bat) • Watch the example project being built
• http://localhost:8080/cruisecontrol • Modify config.xml to include your own project
![Page 48: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/48.jpg)
Further Reading
[Duvall 2007] • Paul M. Duvall, Steve Matyas and Andrew Glover:
Continuous Integration. Improving Software Quality and Reducing Risk, Addison Wesley, Upper Saddle River, NJ, 2007
![Page 49: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/49.jpg)
Tomorrow’s Exercise
• Goal: Being able to set up and manage continuous integration • Team-based organization: The exercise is team-based
• We recommend a team size of 5 people (4-6) • Choose a team leader
• Equipment: • Bring at least 2 laptops per team to the class room
• Preparations (Mandatory, by midnight) • E-Mail the team member names to [email protected] • Set up Eclipse on at least one of the team laptops • Check out and study the Bumpers project using the information
available on the exercise portal : https://wwwbruegge.informatik.tu-muenchen.de/twiki/bin/view/Lehrstuhl/POMSS09Exercises
• Additional details • Will be distributed at the beginning of the exercise session.
![Page 50: Configuration & Build Management · Construction of Ant Build Files • The default name for a Ant build file is build.xml • The xml root element must be the ‘project’ element](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e90ab40680cfb512f3171d9/html5/thumbnails/50.jpg)
Deployment in tomorrows exercise