On Friday 02 June 2006 00:07, Jeff McAffer wrote: > Can you express a clear bi-directional mapping of BSN and version onto > groupId, artifactId, version and ultimate JAR name?
<root>/<groupId>/<artifactId>/<version>/<artifactId>-<version>-<classifier>.<type> where <groupId> has the dots exchanged for slashes to map into the file system. <classifier> refers to non versioning subtypes, e.g. javadocs, source or platform. This is used indirectly by the plugins producing these associated or derived types of the artifact. > Is it true that all '.' in groupIds are converted to '/' (i.e., dirs) in > the Maven repo? Yes, in Maven2. > Is this true for '.' in the artifactId? No. The dots in artifactIDs are kept. > In any event, the issues of robustness and confusion remain. For example, > take a look at > http://www.ibiblio.org/maven2/org/eclipse/equinox/osgi/3.1.1/ > You will see that it contains osgi-3.1.1.jar. This is what we named as > org.eclipse.osgi_3.1.1.jar. Notice that the groupId does not match the > BSN and the JAR has been renamed. So there is ambiguity in the groupId > (perhaps the person who did this just did it wrong?). The JAR itself has > a nice simple name (osgi-3.1.1.jar) but this is hardly unique. So, now > when you go to ship a product you have to replicate the dir structure or > do other things to avoid collisions. Personally, I make the "lib/" dir the "<root>" and replicate the structure. Difficult? Not found it troublesome yet, but always worked with tools that can deal with it. ;o) You are saying that we are not in control of the deployment scenarios, and we have to adopt to other people's wishes and work patterns. I have only come across this once, but in that case the requirement was to be compatible with Solaris pkg system, automatic re-installs, and stepping backwards and forwards in versioning. Very heavy, and this discussion would have no effect one way or the other. All other cases; "here is the tar, zip, installer or whatever, and read the INSTALL doc"... has been more than sufficient. Perhaps you could provide a more elaborate usecase of where this enforcement happens. Also, an interesting note is that Linux manages to stick 2400 (my system) files from different sources into /usr/bin ... Why are we so concerned, and they are not? Cheers Niclas

