Hi,
I know we discussed this on the mailing list [1] and it's documented on our wiki [2], but I've run across a couple of scenarios in real-life usage that we need to clarify...
As a reminder, here's what we agreed to (without having to re-read all of the links below):
Option D)
groupId: org.eclipse.microprofile.<subproject>
artifactId: microprofile-<subproject>-<submodule>
Examples:
org.eclipse.microprofile.config : microprofile-config-api - for the Config API
org.eclipse.microprofile.config : microprofile-config-tck - for the Config TCK
org.eclipse.microprofile.conference : microprofile-conference - for Conference Demo app
org.eclipse.microprofile.conference : microprofile-conference-session - for the session module of the Conference app
This works good for the submodule poms, but what about the top-level poms for the subproject?
For example, Config has the following:
<groupId>org.eclipse.microprofile.config.parent</groupId>
<artifactId>microprofile-config-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>MicroProfile Config</name>
But, putting the ".parent" and "-parent" suffixes, it breaks the directory hierarchy in the maven repository. Now the submodule artifacts are not in the same directory structure as the subproject.
As part of my work for defining the top-level MicroProfile 1.1 pom, I went this way instead:
<groupId>org.eclipse.microprofile</groupId>
<artifactId>microprofile-bom</artifactId>
<packaging>pom</packaging>
<version>1.1.0-SNAPSHOT</version>
This "-bom" suffix on the artifactId idea was borrowed from the WildFly-related projects that we pull in for our build and test dependencies. I kind of liked it. It shows that this is clearly a convenience artifact that is used to pull in a bunch of other "real" artifacts.
So, to that end, I would like to propose that the top-level subproject poms are defined as follows:
groupId: org.eclipse.microprofile.<subproject>artifactId: microprofile-<subproject>-bom
Thus, the Config top-level pom should change to this:
<groupId>org.eclipse.microprofile.config</groupId>
<artifactId>microprofile-config-bom</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>MicroProfile Config</name>
Thoughts? Or, other suggested improvements? I just don't like that extra ".parent" and/or "-parent" since it screws up the directory hierarchy. And, I want something consistent for our top-level bom pom.xml coordinates.
Thanks!
Kevin
[1]
https://groups.google.com/forum/#!msg/microprofile/iWAimG6CtAM/hJbFU8-rBAAJ[2]
https://wiki.eclipse.org/MicroProfile/ContributingGuidelines#Deliverable_group_and_artifact_naming_convention