INFSOM-RI-1234567
Juelich, 10 June 2008
ETICS - MavenFrom competition, to collaboration
Title
INFSOM-RI-1234567
2
ETICS
Configurable automatic build/test system with multiplatform support for development and testing
Powerful and flexible automatic dependency management with a large catalogue of preconfigured external libraries
Ready-to-use infrastructure with many hosts preinstalled and maintained to submit builds and tests in a few steps from the web
Produce different packages (rpms, tar, msi, debs) and build and test reports archived in the ETICS Repository
Trigger coding convention checks, unit test, documentation tools and collect and publish the results
Title
INFSOM-RI-1234567
3
MAVEN
Simple project setup that follows best practices. Superior dependency management including automatic updating and dependency closures.
A large and growing repository of libraries and metadata to use out of the box, and arrangements with Open Source projects for real-time availability of packages.
Build any number of projects into predefined output types such as a JAR, WAR, without the need to do any scripting in most cases.
Generate web sites or PDF including any documentation, standard reports about the state of development of the project
Release management and distribution publication managing the release of a project based on tags.
Title
INFSOM-RI-1234567
4Rome, may 2008
Project Object Model
ETICS MAVEN
Metadata Metadata stored in a central repository. Editing using WA and CLI
pom.xml files committed with sources in VCS. Editing through XML editing
Structure Defined with foreign keys in a relational database
Defined through recursion and linkage of pom.xml files
Versioning Not possible to version modules. Only kept the latest version of the structure
Done using VCS
Inheritance Properties are inherited Properties are inherited
Title
INFSOM-RI-1234567
5Rome, may 2008
Dependencies
ETICS MAVEN
Definition Using foreign keys in a relational database. Editing using WA and CLI
Xml tag in the pom.xml file. Editing through XML editing
Types • Static• Based on project definition• Based on version constraints ( = > < etc.)
• Static (a list of versions)• System (assumed available)• Transitive (based on parent pom.xml definitions)
Scope • Build time• Run time
• Compile• Test (Unit)• Runtime
Usage Dependency files available at specific location (could set CLASSPATH)Rebuild from source
Automatically imported in CLASSPATH
Title
INFSOM-RI-1234567
6Rome, may 2008
Repository
ETICS MAVEN
Metadata Organized in project, module, version, PLATFORM
Organized in groupID, module, version
Binaries Platform specific packages for binaries and sources: tar.gz, rpm, zip, deb
Java packages: jar, war, rar, sar
Download • Local version in client• Downloaded and extracted• Available to the client
• Local version in client• Downloaded• Available in CLASSPATH
Upload Automatically uploaded by the ETICS infrastructure in VOLATILE and REGISTERED
PERMANENT repository + SNAPSHOTsCan be automatically uploaded with security
Sites One central repositoryMany local repositories
One central official repositoryMany mirrorsMany remote repositoriesMany local repositories
Title
INFSOM-RI-1234567
7Rome, may 2008
Build Process
ETICS MAVEN
Commands Simply scripts to be executed in a certain sequence
Standard process using conventionsPossibility to customize
Checkout Checkout command executes some script: CVS, SVN, WGETCVS templates pre-filled
Checkout is not managed by MavenRelease plugin can checkout different tags
Build • Completely custom by the user• Can use ANT, MAKE, AUTOTOOLS, etc..• No wizard or standard process
• Standard conventions for locations• Automatic build with no effort• Custom solution possible
Plugins • Triggered during the process• Associated to targets• Generate reports and can block the process
• Unit testing integrated• Associated to goals•Deployment plugin• Static analysis (Checkstyle ,PMD)• External tools integration
Packaging • Automatic multiplatform packager for RPM, TAR.GZ, DEB• Explicit copy of files in a custom location
• Automatic for Java formats (JAR, WAR, RAR, SAR, etc)• Conventions for the location of files to package.
Title
INFSOM-RI-1234567
8Rome, may 2008
Reporting
ETICS MAVEN
Site No project specific site, information available in the portal
Custom site with all information, no central portal to browse projects
Logs Complete log reports available for the executions in HTMLPlugin log/reports
Reports available for buildsCheckstyle and PMD reports
Executions • Available in the portal in the Repository tab• Metronome for expert users
• Available the SNAPSHOT and all versions
Binaries / Releases • Available in the portal in the Repository tab.• Releases and temporary builds• No SNAPSHOT by default but possible to be defined.
Available SNAPSHOT and all versionsLink to sourcesDependencies
Documentation Target to generate documentationNot available in the PortalNo wizard or standard process
Automatic generation of JavaDocCustom project pages on site
Title
INFSOM-RI-1234567
9Rome, may 2008
SCM / Release
ETICS MAVEN
Relation with VCS VCS tags stored within a configuration that represents a version of the software
VCS tags stored in POM xml file. Not known the usage. Is there an automatic checkout?
Release definition Done through sub-configurations linksPossibility to build any module (also all project)
Done using dependencies and the repository. Possible only from binaries. Cannot rebuild parts of project.
Continuous builds Possible with scriptingComponents or Projects built at anytime on any platform
SNAPSHOT building at any time
Reports / binaries Available in the repositoryPossibility to link them from websites and see the latest available
The site contains the versions, SNAPSHOT and build logs.