Am 01.03.2013 08:26, schrieb Jörg Schaible:
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. :-/

Ouch, never ran into this one.

- Jörg

-Tim


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

Reply via email to