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]

Reply via email to