Your SlideShare is downloading. ×
Maven 3 / Tycho
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Maven 3 / Tycho

15,286
views

Published on

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.

Published in: Technology

1 Comment
10 Likes
Statistics
Notes
No Downloads
Views
Total Views
15,286
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
382
Comments
1
Likes
10
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Maven 3 / Tycho Eclipse and Maven coexisting in harmony Karsten Thoms 2010-05-10 © itemis AG 2010 – Alle Rechte vorbehalten 1
  • 2. 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
  • 3. Maven Tycho © itemis AG 2010 – Alle Rechte vorbehalten 3
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. Eclipse project structure © itemis AG 2010 – Alle Rechte vorbehalten 8
  • 9. Maven project structure © itemis AG 2010 – Alle Rechte vorbehalten 9
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. Repositories P2 Repository Maven2 Repository © itemis AG 2010 – Alle Rechte vorbehalten 13
  • 14. Creating a P2 Repository with Equinox FeaturesAndBundlesPublisher © itemis AG 2010 – Alle Rechte vorbehalten 14
  • 15. Creating a P2 Repository with Equinox FeaturesAndBundlesPublisher © itemis AG 2010 – Alle Rechte vorbehalten 15
  • 16. 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
  • 17. pom.xml bootstrapping © itemis AG 2010 – Alle Rechte vorbehalten 17
  • 18. 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
  • 19. Packaging: eclipse-plugin © itemis AG 2010 – Alle Rechte vorbehalten 19
  • 20. Packaging: eclipse-plugin © itemis AG 2010 – Alle Rechte vorbehalten 19
  • 21. Packaging: eclipse-feature © itemis AG 2010 – Alle Rechte vorbehalten 20
  • 22. Packaging: eclipse-feature © itemis AG 2010 – Alle Rechte vorbehalten 20
  • 23. Packaging: eclipse-update-site © itemis AG 2010 – Alle Rechte vorbehalten 21
  • 24. Packaging: eclipse-application © itemis AG 2010 – Alle Rechte vorbehalten 22
  • 25. Packaging: eclipse-application © itemis AG 2010 – Alle Rechte vorbehalten 22
  • 26. 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
  • 27. Parent POM © itemis AG 2010 – Alle Rechte vorbehalten 24
  • 28. Parent POM © itemis AG 2010 – Alle Rechte vorbehalten 24
  • 29. Integration of Tycho builds into Hudson © itemis AG 2010 – Alle Rechte vorbehalten 25
  • 30. Add Maven 3 Installation © itemis AG 2010 – Alle Rechte vorbehalten 26
  • 31. Create Free-Style Job © itemis AG 2010 – Alle Rechte vorbehalten 27
  • 32. Create Free-Style Job © itemis AG 2010 – Alle Rechte vorbehalten 28
  • 33. Create Free-Style Job © itemis AG 2010 – Alle Rechte vorbehalten 29
  • 34. Test drive! © itemis AG 2010 – Alle Rechte vorbehalten 30
  • 35. Test drive! © itemis AG 2010 – Alle Rechte vorbehalten 31
  • 36. Test drive! © itemis AG 2010 – Alle Rechte vorbehalten 32
  • 37. Test drive! © itemis AG 2010 – Alle Rechte vorbehalten 33
  • 38. Maven 3 © itemis AG 2010 – Alle Rechte vorbehalten 34
  • 39. 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
  • 40. 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
  • 41. Maven Shell - Execution Time • Apache Commons Lang 2.5 • Goals: clean package mvn mvnsh © itemis AG 2010 – Alle Rechte vorbehalten 37
  • 42. 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
  • 43. Polyglot Maven - Original POM © itemis AG 2010 – Alle Rechte vorbehalten 39
  • 44. Polyglot Maven - Groovy © itemis AG 2010 – Alle Rechte vorbehalten 40
  • 45. Polyglot Maven - Groovy © itemis AG 2010 – Alle Rechte vorbehalten 40
  • 46. Polyglot Maven - Scala © itemis AG 2010 – Alle Rechte vorbehalten 41
  • 47. Polyglot Maven - Scala © itemis AG 2010 – Alle Rechte vorbehalten 41
  • 48. Polyglot Maven - Ruby © itemis AG 2010 – Alle Rechte vorbehalten 42
  • 49. Polyglot Maven - Ruby © itemis AG 2010 – Alle Rechte vorbehalten 42
  • 50. 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
  • 51. 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
  • 52. 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
  • 53. 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

×