Maven 3 / Tycho
Upcoming SlideShare
Loading in...5
×
 

Maven 3 / Tycho

on

  • 18,257 views

The Tycho project aims to enable Maven to build Eclipse based artifacts (plugins, features, update sites, products). This presentation was held at a public event from itemis in Dortmund, showing how ...

The Tycho project aims to enable Maven to build Eclipse based artifacts (plugins, features, update sites, products). This presentation was held at a public event from itemis in Dortmund, showing how Tycho is used and some news to the upcoming Maven 3 release.

Statistics

Views

Total Views
18,257
Views on SlideShare
17,912
Embed Views
345

Actions

Likes
10
Downloads
377
Comments
1

8 Embeds 345

http://www.slideshare.net 190
http://twiki.wrs.com 122
http://wiki.wrs.com 14
http://asakusasatellite.heroku.com 9
http://www.techgig.com 7
https://twitter.com 1
http://b.hatena.ne.jp 1
http://localhost:3000 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Maven 3 / Tycho Maven 3 / Tycho Presentation Transcript

  • Maven 3 / Tycho Eclipse and Maven coexisting in harmony Karsten Thoms 2010-05-10 © itemis AG 2010 – Alle Rechte vorbehalten 1
  • About me • Working as consultant for itemis • Over 10 years experience in Enterprise Java, Model Driven Software Development • Open Source enthusiast, MDSD evangelist • Project (co-)lead: The Fornax Platform, fit4oaw, Hybridlabs Beautifier • Committer / Contributor: Eclipse EMFT MWE, M2T Xpand, openArchitectureWare, Fornax Maven plugin for oAW/MWE, Fornax UML2 cartridges for oAW, AUTOSAR Tool Platform (ARTOP) • Using Maven in my Open Source projects and some customer projects © itemis AG 2010 – Alle Rechte vorbehalten 2
  • Maven Tycho © itemis AG 2010 – Alle Rechte vorbehalten 3
  • Example used for Tycho demo • MP3 Manager • RCP Example from Kai Tödter • http://max-server.myftp.org/trac/mp3m © itemis AG 2010 – Alle Rechte vorbehalten 4
  • Example RCP Application • Project types in this application • Plugins • Features • Update Site • Products • Product come with different brandings: blue, orange, german • Build Target: • Create ZIP distributions for branded products © itemis AG 2010 – Alle Rechte vorbehalten 5
  • Automated Build for Eclipse/OSGi • Several frameworks serving this task • PDE Build • Buckminster • Pluginbuilder • b3 • Athena Common Build Infrastructure • Often hard to setup, maintain and debug a working headless build • P2 makes some things better and many worse © itemis AG 2010 – Alle Rechte vorbehalten 6
  • Tycho • Maven extensions for Eclipse / OSGi • Seamless build for Eclipse artifacts • Plugins, Plugin-Tests, Features, Update Sites, Products • Manifest-first approach • POM needed for each module, but minimal one • Tight integration with Equinox / P2 • Proposed as project under the Eclipse Technology project in April 2010 © itemis AG 2010 – Alle Rechte vorbehalten 7
  • Eclipse project structure © itemis AG 2010 – Alle Rechte vorbehalten 8
  • Maven project structure © itemis AG 2010 – Alle Rechte vorbehalten 9
  • Packaging extensions • Target artifact type is specified with <packaging> element in pom.xml • Standard packaging types: • pom - jar • war - ear • ... • Tycho adds Eclipse specific packaging types • eclipse-plugin - eclipse-test-plugin • eclipse-feature - eclipse-update-site • eclipse-application © itemis AG 2010 – Alle Rechte vorbehalten 10
  • Target Platform • Set of plugins and features, against which modules/ projects are built • Computed seperately for each module • Configurable via • System property -Dtycho.targetPlatform=<eclipsehome> • Repositories in POM with <layout>p2</layout> • Target Platform Definition file (.target) stored in a Maven repository © itemis AG 2010 – Alle Rechte vorbehalten 11
  • Target Platform - Repositories <repositories> <repository> <id>galileo</id> <layout>p2</layout> <url>http://download.eclipse.org/ releases/galileo</url> </repository> <repository>... </repository> </repositories> © itemis AG 2010 – Alle Rechte vorbehalten 12
  • Repositories P2 Repository Maven2 Repository © itemis AG 2010 – Alle Rechte vorbehalten 13
  • Creating a P2 Repository with Equinox FeaturesAndBundlesPublisher © itemis AG 2010 – Alle Rechte vorbehalten 14
  • Creating a P2 Repository with Equinox FeaturesAndBundlesPublisher © itemis AG 2010 – Alle Rechte vorbehalten 15
  • Getting started with Tycho • Get Maven 3 Installation • Add a pom.xml to each project • Bootstrap pom.xml creation: mvn org.sonatype.tycho:maven-tycho-plugin:generate-poms -DgroupId=com.siemens.ct.mp3m -Dversion=3.5.1-SNAPSHOT -Dtycho.targetPlatform=<path-to-eclipse> © itemis AG 2010 – Alle Rechte vorbehalten 16
  • pom.xml bootstrapping © itemis AG 2010 – Alle Rechte vorbehalten 17
  • Project coordinates OSGi Maven / Tycho Bundle-SymbolicName: <groupId>com.siemens.ct.mp3m</groupId> com.siemens.ct.mp3m.model <artifactId>mp3m.model</artifactId> or... <groupId>com.siemens.ct.mp3m</groupId> <artifactId>com.siemens.ct.mp3m.model </artifactId> Bundle-Version: <version>3.5.1-SNAPSHOT</version> 3.5.1.qualifier Bundle-Version: <version>3.5.1</version> 3.5.1.qualifier © itemis AG 2010 – Alle Rechte vorbehalten 18
  • Packaging: eclipse-plugin © itemis AG 2010 – Alle Rechte vorbehalten 19
  • Packaging: eclipse-plugin © itemis AG 2010 – Alle Rechte vorbehalten 19
  • Packaging: eclipse-feature © itemis AG 2010 – Alle Rechte vorbehalten 20
  • Packaging: eclipse-feature © itemis AG 2010 – Alle Rechte vorbehalten 20
  • Packaging: eclipse-update-site © itemis AG 2010 – Alle Rechte vorbehalten 21
  • Packaging: eclipse-application © itemis AG 2010 – Alle Rechte vorbehalten 22
  • Packaging: eclipse-application © itemis AG 2010 – Alle Rechte vorbehalten 22
  • Parent POM • Aggregates all projects as modules • Common build settings • Tycho plugins • Other Maven plugins • Repositories • Target platform • Target environments • Usually in the directory „above“ the projects • This would be the workspace root in Eclipse! © itemis AG 2010 – Alle Rechte vorbehalten 23
  • Parent POM © itemis AG 2010 – Alle Rechte vorbehalten 24
  • Parent POM © itemis AG 2010 – Alle Rechte vorbehalten 24
  • Integration of Tycho builds into Hudson © itemis AG 2010 – Alle Rechte vorbehalten 25
  • Add Maven 3 Installation © itemis AG 2010 – Alle Rechte vorbehalten 26
  • Create Free-Style Job © itemis AG 2010 – Alle Rechte vorbehalten 27
  • Create Free-Style Job © itemis AG 2010 – Alle Rechte vorbehalten 28
  • Create Free-Style Job © itemis AG 2010 – Alle Rechte vorbehalten 29
  • Test drive! © itemis AG 2010 – Alle Rechte vorbehalten 30
  • Test drive! © itemis AG 2010 – Alle Rechte vorbehalten 31
  • Test drive! © itemis AG 2010 – Alle Rechte vorbehalten 32
  • Test drive! © itemis AG 2010 – Alle Rechte vorbehalten 33
  • Maven 3 © itemis AG 2010 – Alle Rechte vorbehalten 34
  • Maven 3 • Complete rework of Maven 2 • Current version 3.0-beta-1 • Really stable already • Mostly backward compatible • Important projects developed for Maven 3 • m2eclipse • Tycho • Maven Shell • Polyglot Maven © itemis AG 2010 – Alle Rechte vorbehalten 35
  • Maven Shell • CLI interface, Wrapper for normal shell • Faster turn-around • project information always in-memory • plugins loaded only once © itemis AG 2010 – Alle Rechte vorbehalten 36
  • Maven Shell - Execution Time • Apache Commons Lang 2.5 • Goals: clean package mvn mvnsh © itemis AG 2010 – Alle Rechte vorbehalten 37
  • Polyglot Maven • Multilanguage support for definition of POMs • Alternative to XML POM definition • Supported languages • Groovy • Scala • JRuby • Clojure • Xtext external DSL coming up © itemis AG 2010 – Alle Rechte vorbehalten 38
  • Polyglot Maven - Original POM © itemis AG 2010 – Alle Rechte vorbehalten 39
  • Polyglot Maven - Groovy © itemis AG 2010 – Alle Rechte vorbehalten 40
  • Polyglot Maven - Groovy © itemis AG 2010 – Alle Rechte vorbehalten 40
  • Polyglot Maven - Scala © itemis AG 2010 – Alle Rechte vorbehalten 41
  • Polyglot Maven - Scala © itemis AG 2010 – Alle Rechte vorbehalten 41
  • Polyglot Maven - Ruby © itemis AG 2010 – Alle Rechte vorbehalten 42
  • Polyglot Maven - Ruby © itemis AG 2010 – Alle Rechte vorbehalten 42
  • Conclusion • Maven Tycho can make headless Eclipse Builds easy • Still under development • Expect some bugs • Report them! • Rapid improvement through developers • Documentation needs to be improved • Tycho is likely to be the next generation build framework for Eclipse! • Don‘t fear upgrading to Maven 3 © itemis AG 2010 – Alle Rechte vorbehalten 43
  • Resources • Tycho Homepage • http://tycho.sonatype.org/ • Tycho Eclipse Project Proposal • http://www.eclipse.org/proposals/tycho/ • Tycho Tutorials • http://www.sonatype.com/people/2008/11/building-eclipse-plugins-with- maven-tycho/ • http://mattiasholmqvist.se/2010/02/building-with-tycho-part-1-osgi- bundles/ • http://eclipse.dzone.com/news/how-build-xulrunner-1912 • MP3 Manager Example, customized for Tycho • git://github.com/kthoms/mp3m.git © itemis AG 2010 – Alle Rechte vorbehalten 44
  • Resources • Maven 3 compatibility notes https://cwiki.apache.org/MAVEN/maven-3x-compatibility- notes.html • Maven Shell http://shell.sonatype.org/ • Polyglot Maven http://polyglot.sonatype.org https://docs.sonatype.org/display/PMAVEN/Home • © itemis AG 2010 – Alle Rechte vorbehalten 45
  • KANBAN-Compact with Matthias Bohlen Location: Top of Cologne, Cologne Date: September 13th Time: 14:00 - 18:00 Price : 99 € Topics covered: - Introduction to Lean, Pull-Systems and Kanban - Examples and Casestudies - Kanban recipe for success: The ingredients - How to start with Kanban - How to be more productive with Kanban - How Kanban and Scrum fit together Further Informations and Registration: www.itemis.de/Veranstaltungen © itemis AG 2010 – Alle Rechte vorbehalten 46