maven-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Cédric Vidal <c.vi...@proxiad.com>
Subject RE: Expanding Classifier Support
Date Fri, 10 Aug 2007 08:38:28 GMT
Hi,

I'm actually also very concerned by this Maven limitation.

Vincent Massol already reported this limitation last year here:
http://jira.codehaus.org/browse/MNG-2596

He mentioned the conflict between the clover and source plugins which both
try to add a qualifier.

I reported a different use case impacted by the same limitation in:
http://jira.codehaus.org/browse/MNG-2650

I proposed an alternative solution, much less sophisticated than yours ;)
which doesn't addresses as many use cases as yours but simpler here:
http://jira.codehaus.org/browse/MNG-2649

It encodes the list of qualifiers in the filename. It makes it easy to grasp
the meaning of the qualifiers just by reading the file name of the artifact.
(By the way, I checked that the proposed file naming scheme is compatible
with NTFS and EXT2 file systems)

Hoping your mail will raise interest in the subject ;) Indeed, the
aforementioned issues didn't get much attention the first time.

Regards,

Cédric

 -----Message d'origine-----
De : Shane Isbell [mailto:shane.isbell@gmail.com] 
Envoyé : jeudi 9 août 2007 22:22
À : Maven Developers List
Objet : Re: Expanding Classifier Support

I have put the proposal here:

http://docs.codehaus.org/display/MAVENUSER/Expanded+Classifier+Support

Thanks,
Shane


On 8/9/07, Jason van Zyl <jason@maven.org> wrote:
>
> Put the proposal in here with the others:
>
> http://docs.codehaus.org/display/MAVEN/Home
>
> This one in particular is the pattern I would like to shoot for:
>
> http://docs.codehaus.org/display/MAVEN/Decoupling+of+Maven+Artifact
>
> Akin to "The Pattern Language" way of describing problems and solutions.
>
> I'm interested in the proposal, as I'm sure others are, but it will
> get lost in the mailing list.
>
> If you don't have access to the wiki, just ping me and I'll flip the
> necessary bits.
>
> On 9 Aug 07, at 8:10 PM 9 Aug 07, Shane Isbell wrote:
>
> > I have a concern, as I am sure other do, that NMaven may drift too
> > far apart
> > from Maven;  I would like to start raising some the issues that may
> > impact
> > Maven on the general dev list so that solutions can be considered for
> > 2.1+versions of Maven. One important issue is classifiers.  In a
> > typical Maven
> > case, the classifier may be used to classify an artifact as JDK-1.3 or
> > JDK-1.4 for its target platform. In the case of J2ME, things get more
> > complicated and such a single classifier becomes problematic
> > because their
> > can be many classifiers (which are referred to as requirements
> > needed for
> > the artifact to be used on the target platform). For example, the
> > artifact
> > may require libraries for MMS support or certain media support
> > (JSR-135) to
> > be able to build. To this day, Maven still has not adequately
> > addressed this
> > part of the Java world. We also have a similar case in the .NET
> > world, where
> > we are targeting different processors, framework versions, vendor
> > implementations and so on. The general problem is taking Maven from
> > supporting the J2SE world, which has great cross-platform support, to
> > environments that are partially cross-platform.
> >
> > The way NMaven currently handles this problem, is to use the public
> > key
> > token ID, from a signed .NET artifact, as the classifier. Then I
> > can attach
> > requirements (or attributes) to that classifier. For example, say
> > that the
> > value of my public key token ID is 4b435f4d76e2f0e6. I can
> > associate with
> > that value the following attributes: vendor=microsoft,
> > frameworkVersion=2.0.
> > This has the implication that only signed artifacts can have artifact
> > requirements. To understand this approach, requires understanding the
> > constraints of the system. First there is only one classifier
> > within the pom
> > (and its associated dependency object within the Maven API).
> > Second, the
> > Global Assembly Cache - where Microsoft strong-named assemblies are
> > stored
> > for a global context - uses the public key token ID within the path
> > of the
> > assembly. Thus if I have a classifier (pom), some associated meta-
> > data (RDF)
> > tied to that classifier, and the classifier value
> > (4b435f4d76e2f0e6) within
> > the path of the assembly within the GAC, then I can always tell
> > what the
> > requirements are for an artifact, regardless of whether they are
> > stored in
> > the local repository or an external repository such as the GAC. If
> > I need
> > new requirements, I just sign the assembly with a different key, still
> > having both artifacts in the GAC.
> >
> > Now, I don't expect that this would apply to Java's case, but I
> > think that
> > it is important to understand at least one context of the problem
> > and how it
> > is solved. Other contexts could also be drawn from the J2ME world.
> > What I am
> > convinced of - in the general case - is that using a GUID for the
> > classifier
> > and then having associated attributes tied to that GUID makes a lot of
> > sense. If we take the case of multiple classifiers, then we would
> > need more
> > sophisticated matching process to tell whether two artifacts are
> > indeed
> > different. A GUID, as the classifier, allows two artifacts - with
> > the same
> > groupId, artifactId, version - to differentiate themselves by
> > matching a
> > single field. Then it is just a matter of associating the
> > requirements to
> > that classifier value/GUID.
> >
> > Regards,
> > Shane
>
> Thanks,
>
> Jason
>
> ----------------------------------------------------------
> Jason van Zyl
> Founder and PMC Chair, Apache Maven
> jason at sonatype dot com
> ----------------------------------------------------------
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Mime
View raw message