Nope, it does not work (order of things is not so simple, addedToClasspath
remains always true), hold on a few...

On Fri, Jun 10, 2022 at 12:12 PM Tamás Cservenák <ta...@cservenak.net>
wrote:

> If you can use Maven4, try out this one:
> https://github.com/apache/maven/pull/752
>
> T
>
> On Fri, Jun 10, 2022 at 12:00 PM Tamás Cservenák <ta...@cservenak.net>
> wrote:
>
>> I see.
>>
>> Well, as long as oracle Java doco says this:
>>
>> Class paths to the JAR, zip or class files. Each class path should end
>> with a file name or directory depending on what you are setting the class
>> path to, as follows:
>>   * For a JAR or zip file that contains class files, the class path ends
>> with the name of the zip or JAR file.
>> ....
>>
>> Maven should comply, no? Or could maven do something about "zip file that
>> contains class files"?
>>
>> T
>>
>> On Fri, Jun 10, 2022 at 11:28 AM [Quipsy] Markus Karg <k...@quipsy.de>
>> wrote:
>>
>>> Thanks for the quick tip.
>>>
>>> While it might solve the actual problem I did have this morning, it is
>>> neither a clean nor a general solution for everybody and for always, as it
>>> still implies that all ZIPs shall go in the Java classpath unless
>>> custom-packaged. Which means, possibly repackage rather EACH ZIP, as least
>>> ZIPs shall go on the classpath in reality (in 20+ years fulltime with Java
>>> I never wanted to add any ZIP to the Java classpath).
>>>
>>> In fact, the actual intention of this discussion is not how to make my
>>> personal POM build right now (it in fact already does as I do not have any
>>> tests, so I could go with runtime scope), but what I want to reach is that
>>> we find a consensus how a clean and generic solution should look like --
>>> and propose that solution to the Maven team. 😊
>>>
>>> Thanks!
>>> -Markus
>>>
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Tamás Cservenák <ta...@cservenak.net>
>>> Gesendet: Freitag, 10. Juni 2022 11:13
>>> An: Maven Users List <users@maven.apache.org>
>>> Betreff: Re: Keeping dependency out of all classpaths
>>>
>>> Howdy,
>>>
>>> just a quick idea: introduce your own packaging "quipsy-zip"? (yes,
>>> you'd need your extension to be added to build, but it's worth it, trust
>>> me).
>>>
>>> Look here:
>>>
>>> https://github.com/apache/maven/blob/master/maven-artifact/src/main/java/org/apache/maven/artifact/handler/ArtifactHandler.java#L58
>>>
>>> So, your packaging defines (name="quipsy-zip", extension="zip",
>>> addedToClasspath=false...  it should work, and you'd depend on this zip as
>>>
>>> <dependency>
>>>   <groupId>org.group</groupId>
>>>   <artifactId>artifact</artifactId>
>>>   <version>1.0</version>
>>>   <type>quipsy-zip</type>
>>> </dependency>
>>>
>>> See
>>>
>>> https://medium.com/javarevisited/create-your-own-maven-packaging-2d69ad832720
>>> (note: if you are NOT building this ZIP with maven, then you do not need
>>> lifecycle mapping, only the ArtifactHandler )
>>>
>>>
>>> https://github.com/apache/maven/blob/master/maven-artifact/src/main/java/org/apache/maven/artifact/handler/ArtifactHandler.java#L31
>>>
>>>
>>> HTH
>>> T
>>>
>>>
>>> On Fri, Jun 10, 2022 at 10:54 AM [Quipsy] Markus Karg <k...@quipsy.de>
>>> wrote:
>>>
>>> > How can I keep a dependency out of all classpaths?
>>> >
>>> > I do have a dependency in my project that produces a ZIP full of
>>> > resources. None of those resources is actually of any use for the Java
>>> > compiler; they solely serve as an input to third party plugins (not
>>> > dealing with Java at all). Unfortunately the Maven Compiler plugin
>>> > sees that ZIP and tries to read it, leading to error messages as the
>>> > ZIP is in an "unexpected" format (for now let's just say, it is
>>> > intentionally incompatible). So the question is, how to tell Maven to
>>> > not put that dependency on ANY Java classpath?
>>> >
>>> >
>>> >   1.  "runtime" Scope: compile is happy now, but test-compile still
>>> fails
>>> >   2.  Moving the dependency from being a project dependency to being a
>>> > plugin-specific dependency: compile and test-compile are happy now,
>>> > but -am doesn't build the dependency anymore and dependency:tree (and
>>> > other
>>> > scanners) does not tell me about the existence oft hat dependency at
>>> all
>>> >   3.  "resource" Scope: would be exactly what I like to do, but Maven
>>> > does not have such a scope: compile and test-compile would be happy,
>>> > and -am still would build the dependency just like other scanners it
>>> > would still see the dependency
>>> >
>>> > In the end, the bigger question actually is, how to tell ANY plugin to
>>> > ignore particular dependencies of my POM? Just because my project is
>>> > of type WAR does not mean that EVERYTING it depends upon shall be
>>> > processed by the Java toolchain... Maybe it would be better if the
>>> > Maven Compiler Plugin JUST puts those dependencies on the classpath
>>> that actually are JARs...?
>>> >
>>> > Thanks a lot!
>>> > -Markus
>>> >
>>> >
>>>
>>

Reply via email to