Hi Markus,

Markus KARG wrote on Thursday, September 21, 2006 10:01 AM:

> Jörg Schaible schrieb:
> 
>> Markus KARG wrote on Thursday, September 21, 2006 9:27 AM:
>> 
>> 
>> 
>>> Carlos,
>>> 
>>> I don't know if you ALSO read the part where I said that I will
>>> provide another pom.xml instead of another binary (it was your
>>> solution proposal, actually)? 
>>> 
>>> 
>> 
>> When do *you* get it, that you cannot provide a POM that matches
>> this class path: 
>> 
> As soon as someone tells me. Thank you for doing it. As I wrote days
> before, I am a Maven starter. Nobody ever told me that it is
> impossible to say "I need a jar but it doesn't have a version".
> 
> Thank you for beeing so kind to teach me. :-)

Well, this is one of the very basic principles of Maven, so it is implied 
knowledge by everybody ... ;-)

> So actually there is no solution then, but the problem still
> exists. I
> can workaround locally, but this cannot be the end of the story. So I
> will file a request for enhancement with Maven itself.

No need to, it will be rejected. See, how could Maven ever locate and download 
a unique artifact without a version? That's one of the critical poiints 
providing a POM for a library that is not build with Maven. First you have to 
look at the provided docs to learn about the deps and their versions, then 
you'll examine the provided jars - since the docs are often out of date. If the 
jars have versions in their names, good. If not, look at the manifest and take 
the implementation version. If the manifest is vanilla, it gets problematic. I 
meanwhile take the date of the manifest itself in the jar for such a version:

org.whatever.group:archive-with-vanilla-manifest:20040323.123456

And it can be cumbersome if you try to publish the pom here - for FOP I also 
had to provide the POMs for the JAI artifacts ...

But any of this actions does not help if the original artifact defines a 
classpath in its manifest. There are two problems:
1/ the referenced artifacts have no version
2/ Maven selects a different version integrating the artifact into a container

First problem is not solvable - at least not within the public repo.
Second problem might just indicate a version problem that cannot be solved 
either, since Maven has a reason to select a different version, becasue other 
artifacts reference the same dep in a different version.

To resolve your case, I would first establish a private repo for your 
group/company. Then create a FOP jar without that classpath entry (e.g. with 
version 0.20.5-company-1) and add it to this repo. The use a company wide 
global POM where you define in the dependencyManagement that FOP version. 
Nevertheless you have to know, that any other 'public' artifact depending on 
FOP will reference the other version, so you have to take care of this.

The only possible solution for ibiblio would be a release of the jar without 
the manifest entry from the FOP team. But I doubt that will ever happen, since 
they work since years on the next version ;-)

- Jörg

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to