Antwort: Re: Antwort: Re: Maven Shade Plugin
Ok, working with a split-up build project seems to work. The only problem that I face in the moment is that there is not only my 2 shaded jars (api and api-sources) but also a file called "original-api.jar". The content of this jar is only the meta-inf folder and I don't want this file to be placed in my nexusAny hints? Best, Jan Mit freundlichen Grüßen / Best regards Jan Engler Central Research & Development SICK AG Erwin-Sick-Str. 1 79183 Waldkirch, Germany Phone +49 7681 202-3214 mailto:jan.eng...@sick.de http://www.sick.com Von:Tim Kettler An: Maven Users List Datum: 01.03.2013 09:49 Betreff:Re: Antwort: Re: Maven Shade Plugin 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: >> >> >> foo >> bar >> 1.0 >> api >> >> >> 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 SICK AG - Sitz: Waldkirch i. Br. - Handelsregister: Freiburg i. Br. HRB 280355 Vorstand: Dr. Robert Bauer (Vorsitzender) - Reinhard Bösl - Dr. Martin Krämer - Markus Paschmann - Markus Vatter Aufsichtsrat: Gisela Sick (Ehrenvorsitzende) - Klaus M. Bukenberger (Vorsitzender)
Antwort: Re: Antwort: Re: Maven Shade Plugin
Hi, To prevent any problems, I have now split up the build into two builds (api-build and full-jar). I think I will introduce now a third project (with pom packaging) that will build up all modules and collect the artifacts that are needed. I hope that is a correct strategy to solve the problem. I would like to reuse the api.jar and the full.jar as artifacts that can be used as dependencies, therefore I take Jörg's comment into account, thanks! Best, Jan Mit freundlichen Grüßen / Best regards Jan Engler Central Research & Development SICK AG Erwin-Sick-Str. 1 79183 Waldkirch, Germany Phone +49 7681 202-3214 mailto:jan.eng...@sick.de http://www.sick.com Von:Jörg Schaible An: users@maven.apache.org Datum: 01.03.2013 08:27 Betreff:Re: Antwort: Re: Maven Shade Plugin 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: > > > foo > bar > 1.0 > api > > > 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 SICK AG - Sitz: Waldkirch i. Br. - Handelsregister: Freiburg i. Br. HRB 280355 Vorstand: Dr. Robert Bauer (Vorsitzender) - Reinhard Bösl - Dr. Martin Krämer - Markus Paschmann - Markus Vatter Aufsichtsrat: Gisela Sick (Ehrenvorsitzende) - Klaus M. Bukenberger (Vorsitzender)