Hi Tim,

Tim Kettler wrote:

> Am 28.02.2013 19:47, schrieb Joachim Durchholz:
>> Am 28.02.2013 16:24, schrieb Jan Engler:
>>> At first: in fact this is only one artifact. The full jar contains all
>>> classes of the dependecies, the api a reduced set (using filtern in the
>>> shade plugin).
>>
>> Is there a (conceivable) Maven build that uses api.jar as a dependency?
>> Then it must be the main artifact at its GAV (groupId/artifact/version)
>> coordinate.
>>
>> Is there a (conceivable) Maven build that uses full.jar as a dependency?
>> Then it must be the main artifact at its GAV coordinate.
>>
>> If both jars need to be main artifacts, they need to go to different GAV
>> coordinates. Because the dependent projects that need either api.jar or
>> full.jar have no way of specifying which of them they actually need, the
>> dependency section in their poms can only specify the GAV coordinate.
> 
> That's not correct. The classifier is part of the artifact coordinates
> just like group, artifact(name) and version. A POM can just as well
> depend on a secondary artifact:
> 
>    <dependency>
>      <groupId>foo</groupId>
>      <artifactId>bar</artifactId>
>      <version>1.0</version>
>      <classifier>api</classifier>
>    </dependency>
> 
> The complete coordinates of an artifact are GAVTC: group,
> artifact(name), version, type (default is jar), classifier (default is
> empty).

That's not the real problem. What actually *is* a problem, if you depend on 
different artifacts that bring both jars as transitive dependencies - you 
cannot exclude e.g. the -api, because for exclusions you can only specify 
GA. :-/

- Jörg


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to