Open Source Project Management - PowerPoint PPT Presentation

1 / 44
About This Presentation
Title:

Open Source Project Management

Description:

Most common build tool for Java and Web. Usually for single projects ... Lifecycle Phases covered by Tools like Maven or Ant or IDEs. Analysis. Design. Development ... – PowerPoint PPT presentation

Number of Views:62
Avg rating:3.0/5.0
Slides: 45
Provided by: werne3
Category:

less

Transcript and Presenter's Notes

Title: Open Source Project Management


1
Open Source Project Management
  • Werner Keil Creative Arts Technologies

2
Presentation Goal
Learn how to use Open Source and Commercial
Tools together
  • Build vs. Project Management
  • Project Models and Dependencies
  • Repositories
  • IDE Integration
  • Multiple Projects
  • Project Lifecycle
  • Continuous Integration

3
Build Tools History
  • Make, GnuMake, MMake, NMake
  • Jam
  • Perl/Shell scripts
  • Other scripts
  • Platform-dependant
  • Shell-based
  • Sensitive to content format and changes

4
The Antcestor
  • Apache Ant
  • Platform-neutral
  • Java-based
  • XML content
  • Most common build tool for Java and Web
  • Usually for single projects(except more complex
    Ant-based frameworks)

5
A Sample Ant Target
vs. Maven goal
lt!-- compile Java source files --gt lttarget name
"compile"gt ltjavac srcdir "./src./test"
destdir "./bin" debug "on" optimize
"off"gt ltclasspathgt ltfileset dir "lib"
includes ".jar"/gt lt/classpathgt
lt/javacgt lt/targetgt
-gt Maven maven javacompile(or just mvn
compile in M2)
6
Maven vs. Ant
(Maven 1)
Maven Ant Standard Build Files project.xml buil
d.xml maven.xml Properties Process 1.
Mb/driver.properties 1. System properties
Order 2. project.properties defined by
-D 3. build.properties 2. Properties loaded
by 4. /build.properties the ltpropertygt
task 5. System properties defined by
-D Last definition wins. First definition
wins. Build Rules Dynamic (similar to a More or
less static programming language) (except
ltscriptgt task) Extension Plugins written in
Jelly Plugins written in Java Build Rules Goals
are extensible by Not easily extensibleExtensibil
ity ltpreGoalgt and ltpostGoalgt
Mb Maven/bin folder Users Home
7
POM
  • Project Object Model
  • Defines key elements of a project
  • XML content
  • Assisted by properties and scripts
  • Jelly (languages in M2)
  • Optional rich content via XDoclet
  • Multiple formats in M2 (e.g. Wiki-like style)

8
POM Elements
Custom Settings (project.properties)
9
Dependencies
  • Projects can share dependencies to ensure that
    every project re-uses common jar files.
  • Avoid JAR Hell
  • Dependency Management Tools
  • Maven
  • Ivy
  • Commercial Systems

10
Repository
  • Retrieved from a repository,
  • Folder on a remote Web server containing all jar
    files
  • By default, Maven uses http//www.ibiblio.org/mav
    en as its repository. /maven2 for M2

11
Repositories (Maven)
Web Server
project.xml (POM)
Download artifact
Get dependencies
1
Remote Repository
3
Maven core
HTTP
Local Repository
4
Save artifact in local repository
2
Check if artifact exists in local repository
VM
Process/VM
12
IDE Integration
  • Eclipse Plugin for Maven
  • Automation and customization, no integration
  • Customized Archetypes (Maven2)
  • Mevenide
  • Eclipse, NetBeans, JBuilder, IntelliJ
  • Maven Workshop
  • Eclipse
  • Eclipse Maven 2 Plugin
  • Ant-like Integration, Eclipse Libraries from
    Maven, Follow-Up to Mevenide for Maven 2

13
Maven and Eclipse
Extended Build Concepts
14
Mevenide Dependency Types
15
Mevenide Locations
16
Mevenide Plugins
17
Mevenide Runtime Preferences
18
Mevenide Templates
19
Mevenide Synchronization
Bi-directional between Eclipse and Maven
20
Mevenide POM Overview
21
Mevenide Run
22
Daily Builds (1/3)
23
Daily Builds (2/3)
24
Daily Builds (3/3)
25
Project Lifecycle
  • Most projects are going through well defined
    phases
  • Analysis
  • Design
  • Development
  • Test
  • Deployment
  • Maintainance
  • Retirement

26
Project Lifecycle (Tools)
  • Lifecycle Phases covered by Tools like Maven or
    Ant or IDEs
  • Analysis
  • Design
  • Development
  • Test
  • Deployment
  • Maintainance
  • Retirement

27
Project Lifecycle (Maven)
  • Lifecycle Phases in Terms of Maven 2
  • Analysis
  • Design
  • compile
  • test
  • Deployment / Maintainance
  • package
  • install
  • deploy
  • site
  • Retirement

28
Continuum (1/4)
  • Continuous integration server
  • Support for
  • Maven 2
  • Maven 1
  • With restrictions
  • Ant
  • Shell scripts

29
Continuum (2/4)
  • Tight integration with Maven
  • Reads the modules information from Maven 2 POMs
  • Nagging/blaming
  • Collects developer information from POMs
  • Sends direct messages to developers

30
Continuum (3/4)
  • Able to build on
  • Schedule
  • Changes in the SCM
  • Changes in dependencies
  • Changes in repository
  • Manages inter-project dependencies
  • Reads unit test reports from the build and stores
    them

31
Continuum (4/4)
  • Remoting
  • XML-RPC
  • SOAP (xfire.codehaus.org)
  • Full control over the server from your IDE
  • Not yet implemented
  • gt Mylar Integration for Eclipse...

32
Continuum and Maven
  • Reads all project information from a URL
  • http//cvs.plexus.codehaus.org/plexus/pom.xml
  • Reads
  • Version
  • Developers
  • Issue tracker
  • Sub projects
  • Dependencies

33
Continuum Notification
  • Email
  • Planned
  • Jabber
  • IRC
  • RSS
  • JIRA
  • SMS (?)

34
Reports
35
Reports (Multiproject)
Maven1
36
Demo
37
Powered by Maven
Media/Entertainment
  • SONY
  • Heavy duty customer web applications like CONNECT
  • Reuters
  • Messaging framework for TIBCO/RV, XML, SOAP, and
    JMS.
  • JAVA API for TIBCO/ActiveDatabase

38
Powered by Maven
Banking/Finance
  • CREDIT SUISSE
  • Concise Group
  • 3rd Party Maven Plugins (e.g. DB History)

39
Powered by Maven
Software/Science
  • IBM
  • PPARC
  • AstroGridaims to produce a working datagrid for
    key Astronomy databases with associated
    data-mining facilities.Grid Computing

40
Powered by Maven
Open Source
  • codehaus
  • Apache SoftwareFoundation
  • Jakarta Commons
  • Geronimo (J2EE Server)
  • Maven Plugins
  • Maven (self-hosting!)
  • more http//maven.apache.org/about/powered.html
  • XDoclet

Maven can build itself with some initial steps
41
Books/Articles
  • Maven A Developer's Notebook
  • For Maven 1.0.2
  • Sample Introductory chapter
  • Quizzes and source code
  • http//www.mavenbook.org

Maven Blogs http//www.mavenblogs.com
42
Infos
  • http//maven.apache.org
  • http//mevenide.codehaus.org/
  • http//www.codehaus.org
  • http//www.ibiblio.org
  • http//maven.apache.org/continuum

43
Infos
  • http//www.catmedia.us
  • Emailinfo_at_catmedia.us orwerner.keil_at_gmx.net

44
QA
Write a Comment
User Comments (0)
About PowerShow.com