Skip to main content

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.

Jump to: navigation, search

Difference between revisions of "EclipseLink/Build/NextGen/TychoAgenda"

(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.
+
===== 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 ====
Implimentation
+
 
* 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

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?).
  • 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

Back to the top