pde builds or maven

11

Click here to load reader

Upload: eclipse-day-india

Post on 07-Jul-2015

94 views

Category:

Technology


0 download

DESCRIPTION

PDE builds or Maven

TRANSCRIPT

Page 1: PDE builds or Maven

Ankur [email protected]@ankur_sharmablog.ankursharma.org

Page 2: PDE builds or Maven

WHO AM I?

Ex-committer and co-lead to Eclipse PDE project

Currently employed with EMC2

Dealing with Eclipse for last 8 years now

Page 3: PDE builds or Maven
Page 4: PDE builds or Maven

BUILDS ARE NOT EASY

Challenges

• Dependencies

• Versions

• Streams/Branches – I,N,M

• CI

Page 5: PDE builds or Maven

PDE BUILDS

• Eclipse plug-ins (and OSGi bundles) treated as first rate citizens

• Eclipse style Versioning

• Understands PDE artifacts

• build.properties

• Ant based

Page 6: PDE builds or Maven

TANTRUMS

• Dependency hell

• Third party dependencies

• Multiple Target platforms

• Insufficient active development

• Bloated builds

• 32 bit and 64 bit builds?

• Didn’t work too well with Git

Page 7: PDE builds or Maven

NOT ALL IS LOST

• Use build.properties preferences

• Api Baseline

• Make use of API Use scans

Page 8: PDE builds or Maven

MAVEN

• Language independent

• Dependency management is the core

• Modular artifacts instead of interpreted scripts

• Extensible architecture

Page 9: PDE builds or Maven

HIGH MAINTENANCE?

• Cumbersome pom.xml

• Doesn’t understands Eclipse artifacts – plug-ins, bundles,

features, site

• Eclipse builds depends on Tycho and m2e

• Ignores PDE artifacts like build,properties

• Eclipse integration is not fully baked yet

• Tycho does its own packaging

• .m2 cache

Page 10: PDE builds or Maven

THEN WHY?

• Dependence management

• Ability to easily churn out Snapshot and Release builds

• Works well with Git, Perforce and other SCMs

• Can hide Target Platform menace using custom repositories like

Jfrog Artifactory

Page 11: PDE builds or Maven

BEST CHOICE?

• There is no silver bullet

• PDE Builds for simpler and small applications

• Maven for complex and heavy applications.

• Use Maven for CI

• Keep light weight PDE infrastructure at hand for running local

tests and builds