Assemble as a JBoss Module during releases

Description

The ModeShape team is assembling a JBoss Module for Hibernate Search to better consume the library. Other project are needing the same and this is getting a common requirement.

The ModeShape sources are at:
https://github.com/ModeShape/modeshape/tree/master/deploy/jbossas/kit/jboss-as71/modules/org/hibernate/search-engine

We should create zip files to upload to Maven repositories when doing the release.

Environment

None

Activity

Show:
Randall Hauch
October 18, 2012, 10:22 PM
Edited

ModeShape's build process does something similar.

  1. We have a Maven assembly definition for our AS7.2 distribution (among other assembly definitions, including one for AS 7.1.1.Final and other non-AS-related assemblies). The AS7 "kits" are each basically just a ZIP file of our module.xml files and AS7 configuration files (see lines 13-17), our XSD for our AS7 subsystem (see lines 20-26), and the JARs for the modules (our Hibernate Search and Lucene modules are assembled toward the end of the file; see lines 263-290). We happen to define all of our assembly definitions in the "modeshape-assemblies" Maven module, and doing so results in them being installed into the Maven repository.

  2. Our "modeshape-distribution" Maven module is then dependent upon all of our other modules (ensuring proper build order, and allowing that POM to use the assembly plugin to build the assemblies (by name via the "descriptorRef"); see line 542 for the "assembly" profile (which builds all our assemblies) and line 568 for the "integration" profile (which builds on those assemblies we need for our integration testing). These distributions are considered artifacts for this module, and therefore upon "mvn install" are uploaded to your local Maven repository and upon "mvn release" are uploaded to the official JBoss Maven repository (just like all other artifacts).

  3. Our "modeshape-jbossas-integration-tests" module that contains some Arquillian tests using a standalone AS7 instance. The POM file uses the dependency plugin to download and unpack/extract the AS7 ZIP file and ModeShape kit for AS7 (both from Maven repository) into the "target/" directory as part of the build. Note that ModeShape's kit contains the "standalone-modeshape.xml" AS7 configuration file that is used by Arquillian (see the "arquillian.xml" file).

Hopefully these help.

Fixed

Assignee

Davide D'Alto

Reporter

Sanne Grinovero

Labels

None

Suitable for new contributors

Yes, likely

Pull Request

None

Feedback Requested

None

Fix versions

Priority

Minor
Configure