Date: 2005-01-07T18:40:34 Editor: BrettPorter Wiki: Gump Wiki Page: MavenId URL: http://wiki.apache.org/gump/MavenId
no comment Change Log: ------------------------------------------------------------------------------ @@ -1,6 +1,46 @@ -= Gump and Maven ID mismatches = += Gump and Maven IDs = -This page lists the known incompatibilies between Maven ang Gump IDs, and can be used as a resource to +== About the ID structures == + +Here, I will refer to a an artifact as a single buildable entity - eg, a JAR. + +In Maven, there are two identifiers for each artifact: + * group ID - this is a globally unique identifier for your product (eg velocity, gump or maven) + * artifact ID - this is an identifier unique within your group ID, for each artifact (eg velocity, velocity-utils) + +In Gump, there are also two identifiers for each artifact: + * project ID - this is a globally unique identifier for the SCM checkout and build to execute + * JAR ID - for each artifact built by the project + +There is also a module name, however this is not taken into consideration when identifying the artifact. + +== Known Issues == + +There are two issues at present in matching these concepts: + 1. the project ID naturally maps to artifact ID in maven, as Maven only generates one artifact per build descriptor. This is a mismatch losing the information in group ID from Maven and JAR ID from Gump + 2. when artifact and project map one-to-one, they sometimes differ as they were created independantly in Gump and Maven. + +To solve (2), the potential solutions are just to rename the projects in Maven, or rename them in Gump. It makes sense to do this in gump as most of the +metadata is centralised in gumps CVS, and the gump project will see projects and be able to assist projects to update. Neither is possible in Maven: users would need to be educated to update their project descriptors. This is still a problem that will be taken on later as part of the [http://wiki.apache.org/ASFRepository ASF repository] project. + +To solve (1), one of the following can be done: + * A policy in gump where project matches the definition of group ID. Maven projects would have to run a multiproject build, and each JAR listed with a JAR ID that matches artifact ID. While this requires no code changes, the problems with this are: + * incompatible with some Maven builds + * incompatible with existing gump descriptors + * if a single JAR build fails, the whole project fails, potentially causing less of gump to execute + * Code changes to gump to match the Maven ID scheme. The only one of the above problems present in this solution is that gump descriptors will possibly need updating. + +=== Implementing the Changes in Gump === + +If this is done, this is a potential solution. + + 1. Change module to match the group ID definition, and project to match the artifact ID definition. + 2. When a build generates multiple JARs, each will be allocated a new artifact ID, rather than a JAR ID. + 3. dependencies will then depend on just an artifact Id. + +== Mapping List == + +This section lists the known incompatibilies between Maven ang Gump IDs, and can be used as a resource to map them within your own project. See the [http://maven.apache.org/reference/plugins/gump/ Maven Gump Plugin] documentation for more information. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]