Jump to: navigation, search

MT4E FAQ

Revision as of 05:32, 22 February 2012 by Digulla.hepe.com (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Some things that you might want to know about Maven Tools 4 Eclipse:

How Are Eclipse Bundle Names Converted To Maven Artifact Coordinates?

There are many ways to convert Eclipse bundle names (say org.eclipse.core.runtime 3.7.0.v20110110) to Maven artifact coordinates (groupId:artifactId:version).

For MT4E, this rule was chosen:

  1. The first three words in the bundle name become the group ID: org.eclipse.core
  2. The whole bundle name becomes the artifact ID: org.eclipse.core.runtime
  3. The version is truncated to three numbers: 3.7.0

Reasoning: The third word in the bundle name is the project. This is good enough to group artifacts by project.

The whole name is repeated because there are 27 bundles that end in "runtime" in my 3.7.1/Helios install. That would mean for web projects: Several runtime-3.7.0.jar in the WEB-INF/lib folder and a) no easy way to tell them apart and b) errors during the build. Things would be similar for non-web projects. Yes, it's redundant but it was the most simple way to avoid a whole load of trouble.

Truncating the version was one thing that feels unsafe. The reasons for truncating are:

  1. Odd qualifiers like R36x_v20101208-1400 or huge cartographic checksums.
  2. The qualifier has often the same meaning as Maven's SNAPSHOT except for one specific which becomes the release.
  3. Only very few people are able to tell whether v20100824-2220 or v20100507-1815 is the release version. For almost anyone, the qualifier is just confusing and holds little value.
  4. The official Eclipse version numbers are 3 integers plus a qualifier. The qualifier is not important when different versions of a bundle are considered.
  5. Each release must change the version number (the part without qualifier)
  6. Requiring the qualifier would mean that it becomes impossible to write POM files without external tools or cut&paste of version numbers from a web page.