To show how it all fits together, here's a visual image.
Ignore the jboss-integration-platform-bom part - that's not there
yet).
On 02-08-13 12:07, Geoffrey De Smet
wrote:
Hi guys,
Please read this, especially the bold parts.
We've created user-facing boms: drools-bom, jbpm-bom,
optaplanner-bom, guvnor-bom and kie-bom.
This way, users can do:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-bom</artifactId>
<type>pom</type>
<version>6.0.0.Final</version>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
...
<dependencies>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId><!--
No version needed :) -->
<dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-decisiontables</artifactId><!--
No version needed :) -->
<dependency>
</dependencies>
1) When you create a new module in any kie repository (for
example jbpm-foo),
instead of adding an entry in droolsjbpm-build-bootstrap,
now add an entry in the appropriate bom file. - The bom files are in the git repo
droolsjbpm-build-bootstrap.
- The new module's groupId determines its bom file:
-- groupId org.kie => kie-bom
-- groupId org.drools => drools-bom
-- groupId org.optaplanner => optaplanner-bom
-- groupId org.jbpm => jbpm-bom
-- groupId org.guvnor => guvnor-bom
- Normally you 'll add 2-3 entries: normal, classifier sources and
classifier test-jar
For example: modules in drools-bom: https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/blob/master/drools-bom/pom.xml#L86
2) When you add a new external dependency (for example
richfaces-core) or update/delete an existing one, instead of changing droolsjbpm-build-bootstrap, now change the pom file kie-parent-with-dependencies
- the bom files do not extend kie-parent-with-dependencies, but
kie-parent-with-dependencies imports the bom files
- kie-parent-with-dependencies is in a subdirectory of git
repository droolsjbpm-build-bootstrap https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/blob/master/kie-parent-with-dependencies/pom.xml#L22
- kie-parent-with-dependencies holds a properties list of all
versions and the dependencyManagement section
-- Note: the ongoing platform bom work will affect this, but I 'll
explain that in a new mail when it's done.
- All new repo's root poms should extend
kie-parent-with-dependencies (NOT kie-parent-metadata) - Reminder (long time standing rule): No poms except for
kie-parent-with-dependencies should mention versions of
dependencies
-- Some modules violate this and might run into issues during
productization when their dependency versions don't align with the
rest.
3) When you add/change/delete a build plugin or any other
metadata (anything except dependencies), instead of changing droolsjbpm-build-bootstrap, now change the pom file kie-parent-metadata
- the bom files do extends kie-parent-metadata.
- kie-parent-with-dependencies extends kie-parent-metadata - so
effectively everything extends kie-parent-metadata
- kie-parent-metadata is in the root of git repository
droolsjbpm-build-bootstrap https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/blob/master/pom.xml
Questions, suggestions, feedback: let me know.
The repo droolsjbpm-build-bootstrap's restructure is now finished
- feel free to make changes there again.