More Related Content Similar to Maven 3 / Tycho (20) More from Karsten Thoms (7) Maven 3 / Tycho1. 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
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
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
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
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
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
30. Add Maven 3 Installation
© itemis AG 2010 – Alle Rechte vorbehalten 26
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
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