INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration
Title INFSOM-RI 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 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 Rome, may 2008 Project Object Model ETICSMAVEN MetadataMetadata stored in a central repository. Editing using WA and CLI pom.xml files committed with sources in VCS. Editing through XML editing StructureDefined with foreign keys in a relational database Defined through recursion and linkage of pom.xml files VersioningNot possible to version modules. Only kept the latest version of the structure Done using VCS InheritanceProperties are inherited
Title INFSOM-RI Rome, may 2008 Dependencies ETICSMAVEN DefinitionUsing 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 UsageDependency files available at specific location (could set CLASSPATH) Rebuild from source Automatically imported in CLASSPATH
Title INFSOM-RI Rome, may 2008 Repository ETICSMAVEN MetadataOrganized in project, module, version, PLATFORM Organized in groupID, module, version BinariesPlatform 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 UploadAutomatically uploaded by the ETICS infrastructure in VOLATILE and REGISTERED PERMANENT repository + SNAPSHOTs Can be automatically uploaded with security SitesOne central repository Many local repositories One central official repository Many mirrors Many remote repositories Many local repositories
Title INFSOM-RI Rome, may 2008 Build Process ETICSMAVEN CommandsSimply scripts to be executed in a certain sequence Standard process using conventions Possibility to customize CheckoutCheckout command executes some script: CVS, SVN, WGET CVS templates pre-filled Checkout is not managed by Maven Release 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 Rome, may 2008 Reporting ETICSMAVEN SiteNo project specific site, information available in the portal Custom site with all information, no central portal to browse projects LogsComplete log reports available for the executions in HTML Plugin log/reports Reports available for builds Checkstyle 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 versions Link to sources Dependencies DocumentationTarget to generate documentation Not available in the Portal No wizard or standard process Automatic generation of JavaDoc Custom project pages on site
Title INFSOM-RI Rome, may 2008 SCM / Release ETICSMAVEN Relation with VCSVCS 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 definitionDone through sub- configurations links Possibility to build any module (also all project) Done using dependencies and the repository. Possible only from binaries. Cannot rebuild parts of project. Continuous buildsPossible with scripting Components or Projects built at anytime on any platform SNAPSHOT building at any time Reports / binariesAvailable in the repository Possibility to link them from websites and see the latest available The site contains the versions, SNAPSHOT and build logs.