Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "EclipseLink/Build/NextGen/TychoAgenda"
< EclipseLink | Build | NextGen
(New page: === Tycho Adoption === Maven/Tycho Overview: What is Maven, Tycho, how is it different from ant. * Ant is like a lego set. It provides a set of 'tasks' that can be put together however y...) |
(→Tycho Adoption) |
||
Line 1: | Line 1: | ||
=== Tycho Adoption === | === Tycho Adoption === | ||
− | Maven/Tycho Overview | + | ==== Maven/Tycho Overview ==== |
− | + | ===== What is Maven, Tycho, how is it different from ant. ===== | |
* Ant is like a lego set. It provides a set of 'tasks' that can be put together however you want to do something. | * Ant is like a lego set. It provides a set of 'tasks' that can be put together however you want to do something. | ||
* Maven is a build framework/model, that uses plugins to perform specific jobs at a specific time (compile source, generate jars, run tests, etc) | * Maven is a build framework/model, that uses plugins to perform specific jobs at a specific time (compile source, generate jars, run tests, etc) | ||
* Tycho is a Maven plugin that builds OSGi bundles, either from a POM (generate manifest) or Manifest-first. | * Tycho is a Maven plugin that builds OSGi bundles, either from a POM (generate manifest) or Manifest-first. | ||
− | Our goal | + | ==== Our goal ==== |
* To switch to building our OSGi bundles manifest first, with minimal impact on overal process. | * To switch to building our OSGi bundles manifest first, with minimal impact on overal process. | ||
− | Our planned usage | + | ==== Our planned usage ==== |
− | + | ||
* Setup Maven Tycho projects to build OSGi bundles | * Setup Maven Tycho projects to build OSGi bundles | ||
** configured most of our OSGi bundles to build using Tycho, and generate Eclipse style source bundles (exceptions being asm, antlr, javax.persistence, and oracle). | ** configured most of our OSGi bundles to build using Tycho, and generate Eclipse style source bundles (exceptions being asm, antlr, javax.persistence, and oracle). | ||
Line 20: | Line 19: | ||
* Call above from Ant to generate build | * Call above from Ant to generate build | ||
− | Planned changes | + | ==== Planned changes ==== |
* resource dir structure | * resource dir structure | ||
** all resources in selected herarchy are included cannot seem to setup any kind of scripted exclude | ** all resources in selected herarchy are included cannot seem to setup any kind of scripted exclude | ||
Line 30: | Line 29: | ||
* asm/antlr generation. | * asm/antlr generation. | ||
− | Caveats | + | ==== Caveats ==== |
* Build now depends upon another tool, and has additional external dependencies. Cannot reduce without moving everything over to Maven. | * Build now depends upon another tool, and has additional external dependencies. Cannot reduce without moving everything over to Maven. | ||
− | Questions | + | ==== Questions ==== |
=== Maven Adoption === | === Maven Adoption === |
Revision as of 12:18, 4 April 2011
Contents
Tycho Adoption
Maven/Tycho Overview
What is Maven, Tycho, how is it different from ant.
- Ant is like a lego set. It provides a set of 'tasks' that can be put together however you want to do something.
- Maven is a build framework/model, that uses plugins to perform specific jobs at a specific time (compile source, generate jars, run tests, etc)
- Tycho is a Maven plugin that builds OSGi bundles, either from a POM (generate manifest) or Manifest-first.
Our goal
- To switch to building our OSGi bundles manifest first, with minimal impact on overal process.
Our planned usage
- Setup Maven Tycho projects to build OSGi bundles
- configured most of our OSGi bundles to build using Tycho, and generate Eclipse style source bundles (exceptions being asm, antlr, javax.persistence, and oracle).
- skipped for several reasons:
- javax.persistence shouldn't build regularly
- antlr and asm build from class files and do not change they also shouldn't be build regularly.
- oracle process will be separate, may move to checking in or contributing to the compile dependency p2 the oraclecompiled copy (legal?).
- configured most of our OSGi bundles to build using Tycho, and generate Eclipse style source bundles (exceptions being asm, antlr, javax.persistence, and oracle).
- Call above from Ant to generate build
Planned changes
- resource dir structure
- all resources in selected herarchy are included cannot seem to setup any kind of scripted exclude
- manifest changes
- DBWS, DBWS Builder : servlet needs to be required bundle, not package import.
- SDO : commonj-sdo needs to be required bundle
- build-dependency P2 repo
- Maven pulls in all dependencies from a repo (virtual or actual p2 or maven format)
- asm/antlr generation.
Caveats
- Build now depends upon another tool, and has additional external dependencies. Cannot reduce without moving everything over to Maven.
Questions
Maven Adoption
What would need to change?
- directory/project structure
- src tree
- project names need to match artifact IDs
Why change (Pros)?
- May allow easier adoption and contribution if in a common build framework
- Currently we are circumventing most of the power of Maven.
- cannot automatically run tests
- circumventing 'defaults'. is non-standard
- cannot utilize Tycho to generate features, or P2 site
- cannot generate other artifacts, jar, javadoc, etc. due to current hierarchy.
- appears we cannot utilize maven plugins to build on demand without Source repo linkage
- no source repo linkage without project restructure
Cons
- lots of work
Discussion