SlideShare a Scribd company logo
1 of 53
Download to read offline
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

More Related Content

What's hot

p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...irbull
 
Understanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profitUnderstanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profitPascal Rapicault
 
Eclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And TricksEclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And TricksChris Aniszczyk
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationDanilo Pianini
 
Developing Rich Clients with the Eclipse 4 Application Platform
Developing Rich Clients with the Eclipse 4 Application PlatformDeveloping Rich Clients with the Eclipse 4 Application Platform
Developing Rich Clients with the Eclipse 4 Application PlatformKai Tödter
 
p2, modular provisioning for OSGi
p2, modular provisioning for OSGip2, modular provisioning for OSGi
p2, modular provisioning for OSGiPascal Rapicault
 
Managing Your Runtime With P2
Managing Your Runtime With P2Managing Your Runtime With P2
Managing Your Runtime With P2Pascal Rapicault
 
Eclipse 4.0 - Dynamic Models
Eclipse 4.0 - Dynamic Models Eclipse 4.0 - Dynamic Models
Eclipse 4.0 - Dynamic Models Lars Vogel
 
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...Embarcadero Technologies
 
Python on Android with Delphi FMX - The Cross Platform GUI Framework
Python on Android with Delphi FMX - The Cross Platform GUI Framework Python on Android with Delphi FMX - The Cross Platform GUI Framework
Python on Android with Delphi FMX - The Cross Platform GUI Framework Embarcadero Technologies
 
PuppetConf 2016 Moving from Exec to Types and Provides
PuppetConf 2016 Moving from Exec to Types and ProvidesPuppetConf 2016 Moving from Exec to Types and Provides
PuppetConf 2016 Moving from Exec to Types and ProvidesMartin Alfke
 
Puppet Camp Germany 2020 - Puppet Control Repo and GIT
Puppet Camp Germany 2020 - Puppet Control Repo and GITPuppet Camp Germany 2020 - Puppet Control Repo and GIT
Puppet Camp Germany 2020 - Puppet Control Repo and GITMartin Alfke
 
469-Porting the build system of a commercial RCP Application from Europa to G...
469-Porting the build system of a commercial RCP Application from Europa to G...469-Porting the build system of a commercial RCP Application from Europa to G...
469-Porting the build system of a commercial RCP Application from Europa to G...gustavoeliano
 
2015 11-04 HEADS at EclipseCon: Modelling Things for IoT
2015 11-04 HEADS at EclipseCon: Modelling Things for IoT2015 11-04 HEADS at EclipseCon: Modelling Things for IoT
2015 11-04 HEADS at EclipseCon: Modelling Things for IoTUdoHafermann
 
Linux GUI Applications on Windows Subsystem for Linux
Linux GUI Applications on Windows Subsystem for LinuxLinux GUI Applications on Windows Subsystem for Linux
Linux GUI Applications on Windows Subsystem for LinuxEmbarcadero Technologies
 
CSS Styling for Eclipse RCP 3.x and 4.x
CSS Styling for Eclipse RCP 3.x and 4.xCSS Styling for Eclipse RCP 3.x and 4.x
CSS Styling for Eclipse RCP 3.x and 4.xKai Tödter
 
Software development made serious
Software development made seriousSoftware development made serious
Software development made seriousDanilo Pianini
 
Unit Test Android Without Going Bald
Unit Test Android Without Going BaldUnit Test Android Without Going Bald
Unit Test Android Without Going BaldDavid Carver
 

What's hot (20)

p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
 
Discovering the p2 API
Discovering the p2 APIDiscovering the p2 API
Discovering the p2 API
 
Understanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profitUnderstanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profit
 
Eclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And TricksEclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And Tricks
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Developing Rich Clients with the Eclipse 4 Application Platform
Developing Rich Clients with the Eclipse 4 Application PlatformDeveloping Rich Clients with the Eclipse 4 Application Platform
Developing Rich Clients with the Eclipse 4 Application Platform
 
p2, modular provisioning for OSGi
p2, modular provisioning for OSGip2, modular provisioning for OSGi
p2, modular provisioning for OSGi
 
Managing Your Runtime With P2
Managing Your Runtime With P2Managing Your Runtime With P2
Managing Your Runtime With P2
 
Eclipse 4.0 - Dynamic Models
Eclipse 4.0 - Dynamic Models Eclipse 4.0 - Dynamic Models
Eclipse 4.0 - Dynamic Models
 
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
Android on Windows 11 - A Developer's Perspective (Windows Subsystem For Andr...
 
Streaming in grails
Streaming in grailsStreaming in grails
Streaming in grails
 
Python on Android with Delphi FMX - The Cross Platform GUI Framework
Python on Android with Delphi FMX - The Cross Platform GUI Framework Python on Android with Delphi FMX - The Cross Platform GUI Framework
Python on Android with Delphi FMX - The Cross Platform GUI Framework
 
PuppetConf 2016 Moving from Exec to Types and Provides
PuppetConf 2016 Moving from Exec to Types and ProvidesPuppetConf 2016 Moving from Exec to Types and Provides
PuppetConf 2016 Moving from Exec to Types and Provides
 
Puppet Camp Germany 2020 - Puppet Control Repo and GIT
Puppet Camp Germany 2020 - Puppet Control Repo and GITPuppet Camp Germany 2020 - Puppet Control Repo and GIT
Puppet Camp Germany 2020 - Puppet Control Repo and GIT
 
469-Porting the build system of a commercial RCP Application from Europa to G...
469-Porting the build system of a commercial RCP Application from Europa to G...469-Porting the build system of a commercial RCP Application from Europa to G...
469-Porting the build system of a commercial RCP Application from Europa to G...
 
2015 11-04 HEADS at EclipseCon: Modelling Things for IoT
2015 11-04 HEADS at EclipseCon: Modelling Things for IoT2015 11-04 HEADS at EclipseCon: Modelling Things for IoT
2015 11-04 HEADS at EclipseCon: Modelling Things for IoT
 
Linux GUI Applications on Windows Subsystem for Linux
Linux GUI Applications on Windows Subsystem for LinuxLinux GUI Applications on Windows Subsystem for Linux
Linux GUI Applications on Windows Subsystem for Linux
 
CSS Styling for Eclipse RCP 3.x and 4.x
CSS Styling for Eclipse RCP 3.x and 4.xCSS Styling for Eclipse RCP 3.x and 4.x
CSS Styling for Eclipse RCP 3.x and 4.x
 
Software development made serious
Software development made seriousSoftware development made serious
Software development made serious
 
Unit Test Android Without Going Bald
Unit Test Android Without Going BaldUnit Test Android Without Going Bald
Unit Test Android Without Going Bald
 

Viewers also liked

Mastering Maven 2.0 In 1 Hour V1.3
Mastering Maven 2.0 In 1 Hour V1.3Mastering Maven 2.0 In 1 Hour V1.3
Mastering Maven 2.0 In 1 Hour V1.3Matthew McCullough
 
Maven 2 in the real world
Maven 2 in the real worldMaven 2 in the real world
Maven 2 in the real worldCarlo Bonamico
 
Sleep Peacefully as Maven Tycho Builds your Product
Sleep Peacefully as Maven Tycho Builds your ProductSleep Peacefully as Maven Tycho Builds your Product
Sleep Peacefully as Maven Tycho Builds your ProductSubramanyam C
 
Maven for Dummies
Maven for DummiesMaven for Dummies
Maven for DummiesTomer Gabel
 
Lorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - MavenLorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - MavenArnaud Héritier
 
Version Management in Maven
Version Management in MavenVersion Management in Maven
Version Management in MavenGeert Pante
 
An introduction to Maven
An introduction to MavenAn introduction to Maven
An introduction to MavenJoao Pereira
 
Automated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yardsAutomated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yardsJohn Ferguson Smart Limited
 

Viewers also liked (15)

Mastering Maven 2.0 In 1 Hour V1.3
Mastering Maven 2.0 In 1 Hour V1.3Mastering Maven 2.0 In 1 Hour V1.3
Mastering Maven 2.0 In 1 Hour V1.3
 
Demystifying Maven
Demystifying MavenDemystifying Maven
Demystifying Maven
 
Continuous delivery-with-maven
Continuous delivery-with-mavenContinuous delivery-with-maven
Continuous delivery-with-maven
 
Maven 2 in the real world
Maven 2 in the real worldMaven 2 in the real world
Maven 2 in the real world
 
Sleep Peacefully as Maven Tycho Builds your Product
Sleep Peacefully as Maven Tycho Builds your ProductSleep Peacefully as Maven Tycho Builds your Product
Sleep Peacefully as Maven Tycho Builds your Product
 
Java se7 features
Java se7 featuresJava se7 features
Java se7 features
 
Travis CI
Travis CITravis CI
Travis CI
 
Maven basic concept
Maven basic conceptMaven basic concept
Maven basic concept
 
Maven tutorial for beginners
Maven tutorial for beginnersMaven tutorial for beginners
Maven tutorial for beginners
 
Maven for Dummies
Maven for DummiesMaven for Dummies
Maven for Dummies
 
Lorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - MavenLorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - Maven
 
Version Management in Maven
Version Management in MavenVersion Management in Maven
Version Management in Maven
 
Maven and ANT
Maven and ANTMaven and ANT
Maven and ANT
 
An introduction to Maven
An introduction to MavenAn introduction to Maven
An introduction to Maven
 
Automated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yardsAutomated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yards
 

Similar to Maven 3 / Tycho

Large scale automation with jenkins
Large scale automation with jenkinsLarge scale automation with jenkins
Large scale automation with jenkinsKohsuke Kawaguchi
 
P2 Introduction
P2 IntroductionP2 Introduction
P2 Introductionirbull
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...mfrancis
 
OpenStack Community App Catalog (http://apps.openstack.org)
OpenStack Community App Catalog (http://apps.openstack.org)OpenStack Community App Catalog (http://apps.openstack.org)
OpenStack Community App Catalog (http://apps.openstack.org)aedocw
 
App catalog (Vancouver)
App catalog (Vancouver)App catalog (Vancouver)
App catalog (Vancouver)Mirantis
 
(E)Git + Tycho + Gerrit + Mylyn = #WIN @ Eclipse Day Toulouse 2012
(E)Git + Tycho + Gerrit + Mylyn = #WIN @ Eclipse Day Toulouse 2012(E)Git + Tycho + Gerrit + Mylyn = #WIN @ Eclipse Day Toulouse 2012
(E)Git + Tycho + Gerrit + Mylyn = #WIN @ Eclipse Day Toulouse 2012Benjamin Cabé
 
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxDeploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxJamie Coleman
 
stackconf 2022: It’s Time to Debloat the Cloud with Unikraft
stackconf 2022: It’s Time to Debloat the Cloud with Unikraftstackconf 2022: It’s Time to Debloat the Cloud with Unikraft
stackconf 2022: It’s Time to Debloat the Cloud with UnikraftNETWAYS
 
Rejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform GainRejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform GainŁukasz Piątkowski
 
Survey of Container Build Tools
Survey of Container Build ToolsSurvey of Container Build Tools
Survey of Container Build ToolsMichael Ducy
 
DevHub 3 - Composer plus Magento
DevHub 3 - Composer plus MagentoDevHub 3 - Composer plus Magento
DevHub 3 - Composer plus MagentoMagento Dev
 
Usernetes: Kubernetes as a non-root user
Usernetes: Kubernetes as a non-root userUsernetes: Kubernetes as a non-root user
Usernetes: Kubernetes as a non-root userAkihiro Suda
 
EMC World 2016 - code.14 Deep Dive with Mesos and Persistent Storage for Appl...
EMC World 2016 - code.14 Deep Dive with Mesos and Persistent Storage for Appl...EMC World 2016 - code.14 Deep Dive with Mesos and Persistent Storage for Appl...
EMC World 2016 - code.14 Deep Dive with Mesos and Persistent Storage for Appl...{code}
 
EMC World 2016 - Deep Dive with Mesos and Persistent Storage for Applications
EMC World 2016 - Deep Dive with Mesos and Persistent Storage for ApplicationsEMC World 2016 - Deep Dive with Mesos and Persistent Storage for Applications
EMC World 2016 - Deep Dive with Mesos and Persistent Storage for ApplicationsDavid vonThenen
 
Creating a Developer Community
Creating a Developer CommunityCreating a Developer Community
Creating a Developer CommunityKohsuke Kawaguchi
 
IMMERSE'16 Introduction to AEM Tooling
IMMERSE'16 Introduction to AEM ToolingIMMERSE'16 Introduction to AEM Tooling
IMMERSE'16 Introduction to AEM ToolingAdobeMarketingCloud
 
semantic::core - A look back into seven years of enterprise class MediaWiki a...
semantic::core - A look back into seven years of enterprise class MediaWiki a...semantic::core - A look back into seven years of enterprise class MediaWiki a...
semantic::core - A look back into seven years of enterprise class MediaWiki a...Alexander Gesinn
 
Leveraging Helm to manage Deployments on Kubernetes
Leveraging Helm to manage Deployments on KubernetesLeveraging Helm to manage Deployments on Kubernetes
Leveraging Helm to manage Deployments on KubernetesManoj Bhagwat
 
Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Etienne Juliot
 
Establish reliable builds and deployments with Magento
Establish reliable builds and deployments with MagentoEstablish reliable builds and deployments with Magento
Establish reliable builds and deployments with MagentoUnic
 

Similar to Maven 3 / Tycho (20)

Large scale automation with jenkins
Large scale automation with jenkinsLarge scale automation with jenkins
Large scale automation with jenkins
 
P2 Introduction
P2 IntroductionP2 Introduction
P2 Introduction
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
 
OpenStack Community App Catalog (http://apps.openstack.org)
OpenStack Community App Catalog (http://apps.openstack.org)OpenStack Community App Catalog (http://apps.openstack.org)
OpenStack Community App Catalog (http://apps.openstack.org)
 
App catalog (Vancouver)
App catalog (Vancouver)App catalog (Vancouver)
App catalog (Vancouver)
 
(E)Git + Tycho + Gerrit + Mylyn = #WIN @ Eclipse Day Toulouse 2012
(E)Git + Tycho + Gerrit + Mylyn = #WIN @ Eclipse Day Toulouse 2012(E)Git + Tycho + Gerrit + Mylyn = #WIN @ Eclipse Day Toulouse 2012
(E)Git + Tycho + Gerrit + Mylyn = #WIN @ Eclipse Day Toulouse 2012
 
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxDeploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
 
stackconf 2022: It’s Time to Debloat the Cloud with Unikraft
stackconf 2022: It’s Time to Debloat the Cloud with Unikraftstackconf 2022: It’s Time to Debloat the Cloud with Unikraft
stackconf 2022: It’s Time to Debloat the Cloud with Unikraft
 
Rejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform GainRejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform Gain
 
Survey of Container Build Tools
Survey of Container Build ToolsSurvey of Container Build Tools
Survey of Container Build Tools
 
DevHub 3 - Composer plus Magento
DevHub 3 - Composer plus MagentoDevHub 3 - Composer plus Magento
DevHub 3 - Composer plus Magento
 
Usernetes: Kubernetes as a non-root user
Usernetes: Kubernetes as a non-root userUsernetes: Kubernetes as a non-root user
Usernetes: Kubernetes as a non-root user
 
EMC World 2016 - code.14 Deep Dive with Mesos and Persistent Storage for Appl...
EMC World 2016 - code.14 Deep Dive with Mesos and Persistent Storage for Appl...EMC World 2016 - code.14 Deep Dive with Mesos and Persistent Storage for Appl...
EMC World 2016 - code.14 Deep Dive with Mesos and Persistent Storage for Appl...
 
EMC World 2016 - Deep Dive with Mesos and Persistent Storage for Applications
EMC World 2016 - Deep Dive with Mesos and Persistent Storage for ApplicationsEMC World 2016 - Deep Dive with Mesos and Persistent Storage for Applications
EMC World 2016 - Deep Dive with Mesos and Persistent Storage for Applications
 
Creating a Developer Community
Creating a Developer CommunityCreating a Developer Community
Creating a Developer Community
 
IMMERSE'16 Introduction to AEM Tooling
IMMERSE'16 Introduction to AEM ToolingIMMERSE'16 Introduction to AEM Tooling
IMMERSE'16 Introduction to AEM Tooling
 
semantic::core - A look back into seven years of enterprise class MediaWiki a...
semantic::core - A look back into seven years of enterprise class MediaWiki a...semantic::core - A look back into seven years of enterprise class MediaWiki a...
semantic::core - A look back into seven years of enterprise class MediaWiki a...
 
Leveraging Helm to manage Deployments on Kubernetes
Leveraging Helm to manage Deployments on KubernetesLeveraging Helm to manage Deployments on Kubernetes
Leveraging Helm to manage Deployments on Kubernetes
 
Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...
 
Establish reliable builds and deployments with Magento
Establish reliable builds and deployments with MagentoEstablish reliable builds and deployments with Magento
Establish reliable builds and deployments with Magento
 

More from Karsten Thoms

EC2022 What Eclipse IDE must learn from other IDEs to survive?.pdf
EC2022 What Eclipse IDE must learn from other IDEs to survive?.pdfEC2022 What Eclipse IDE must learn from other IDEs to survive?.pdf
EC2022 What Eclipse IDE must learn from other IDEs to survive?.pdfKarsten Thoms
 
Integrating Xtext Language Server support in Visual Studio Code
Integrating Xtext Language Server support in Visual Studio CodeIntegrating Xtext Language Server support in Visual Studio Code
Integrating Xtext Language Server support in Visual Studio CodeKarsten Thoms
 
From Stairway to Heaven onto the Highway to Hell with Xtext
From Stairway to Heaven onto the Highway to Hell with XtextFrom Stairway to Heaven onto the Highway to Hell with Xtext
From Stairway to Heaven onto the Highway to Hell with XtextKarsten Thoms
 
Generating Visual Studio Code Extensions for Xtext DSLs
Generating Visual Studio Code Extensions for Xtext DSLsGenerating Visual Studio Code Extensions for Xtext DSLs
Generating Visual Studio Code Extensions for Xtext DSLsKarsten Thoms
 
Recipes to build Code Generators for Non-Xtext Models with Xtend
Recipes to build Code Generators for Non-Xtext Models with XtendRecipes to build Code Generators for Non-Xtext Models with Xtend
Recipes to build Code Generators for Non-Xtext Models with XtendKarsten Thoms
 
Boosting the performance of your Eclipse IDE - EclipseCon France 2016
Boosting the performance of your Eclipse IDE - EclipseCon France 2016Boosting the performance of your Eclipse IDE - EclipseCon France 2016
Boosting the performance of your Eclipse IDE - EclipseCon France 2016Karsten Thoms
 
Boosting the Performance of your Eclipse IDE
Boosting the Performance of your Eclipse IDEBoosting the Performance of your Eclipse IDE
Boosting the Performance of your Eclipse IDEKarsten Thoms
 

More from Karsten Thoms (7)

EC2022 What Eclipse IDE must learn from other IDEs to survive?.pdf
EC2022 What Eclipse IDE must learn from other IDEs to survive?.pdfEC2022 What Eclipse IDE must learn from other IDEs to survive?.pdf
EC2022 What Eclipse IDE must learn from other IDEs to survive?.pdf
 
Integrating Xtext Language Server support in Visual Studio Code
Integrating Xtext Language Server support in Visual Studio CodeIntegrating Xtext Language Server support in Visual Studio Code
Integrating Xtext Language Server support in Visual Studio Code
 
From Stairway to Heaven onto the Highway to Hell with Xtext
From Stairway to Heaven onto the Highway to Hell with XtextFrom Stairway to Heaven onto the Highway to Hell with Xtext
From Stairway to Heaven onto the Highway to Hell with Xtext
 
Generating Visual Studio Code Extensions for Xtext DSLs
Generating Visual Studio Code Extensions for Xtext DSLsGenerating Visual Studio Code Extensions for Xtext DSLs
Generating Visual Studio Code Extensions for Xtext DSLs
 
Recipes to build Code Generators for Non-Xtext Models with Xtend
Recipes to build Code Generators for Non-Xtext Models with XtendRecipes to build Code Generators for Non-Xtext Models with Xtend
Recipes to build Code Generators for Non-Xtext Models with Xtend
 
Boosting the performance of your Eclipse IDE - EclipseCon France 2016
Boosting the performance of your Eclipse IDE - EclipseCon France 2016Boosting the performance of your Eclipse IDE - EclipseCon France 2016
Boosting the performance of your Eclipse IDE - EclipseCon France 2016
 
Boosting the Performance of your Eclipse IDE
Boosting the Performance of your Eclipse IDEBoosting the Performance of your Eclipse IDE
Boosting the Performance of your Eclipse IDE
 

Recently uploaded

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Recently uploaded (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

Maven 3 / Tycho

  • 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