This would also mean, that if you have a dependency that is already JPMS
modularized (is java9+ and has module-info), then:

a) if you declare it as type="jar" it means you want to put it on classpath
(use it as "plain old jar")
b) if you declare it as type="module" it means you want it on modulepath
etc

On Sun, Oct 29, 2023 at 12:30 AM Tamás Cservenák <ta...@cservenak.net>
wrote:

> Of course, the logic HOW and WHAT to make with these would be needed to be
> added to javadoc, compiler and all the plugins that need to distinguish.
> But this would stop any need for any heuristic, guesswork, smart-ness,
> etc...
>
> OTOH, if we introduce new packaging lifecycle "module" (so a project that
> builds module would do project/packaging=module), it could nicely enforce
> things like:
> - prevent non allowed packages
> - enforce presence of module-info.class (maybe some light verification)
> - ensure project is Java9+ etc
>
> Most of this was somewhat done in Takari Lifecycle (also with custom
> packaging like "takari-jar" was).
>
>
> T
>
> On Sun, Oct 29, 2023 at 12:26 AM Tamás Cservenák <ta...@cservenak.net>
> wrote:
>
>> So, basically this is what am proposing:
>> https://gist.github.com/cstamas/76f262538b5a11f6ee23d6d8c86f10ec
>>
>> Basically, Maven core (and hence plugins) could distinguish among
>> different "types" of dependencies (while would all still be plain JARs).
>> So "jar" would be put on classpath, "module" on module path, "agent"
>> would got special treatment and so on.
>>
>> Point is to _differentiate_.
>>
>> T
>>
>> On Sun, Oct 29, 2023 at 12:21 AM Tamás Cservenák <ta...@cservenak.net>
>> wrote:
>>
>>> Unsure from where you get that, but is wrong conclusion.
>>>
>>> You can have dep1:jar, dep2:module, dep3:agent and all 3 MAY
>>> (ArtifactHandler dependent, assuming "jar", "module" and "agent" artifact
>>> handlers all return extension=jar) refer to the same JAR file in your local
>>> repository.
>>>
>>> Type merely adds "semantics" WHAT is it about, HOW to make use of it.
>>> Please see
>>> https://maven.apache.org/repositories/artifacts.html#but-where-do-i-set-artifact-extension
>>>
>>> Thanks
>>> T
>>>
>>> On Sun, Oct 29, 2023 at 12:17 AM Martin Desruisseaux <
>>> martin.desruisse...@geomatys.com> wrote:
>>>
>>>> Le 2023-10-28 à 22 h 54, Tamás Cservenák a écrit :
>>>>
>>>> > I still see these just as new dependency types: "module", "agent",
>>>> > "doclet", and so on.
>>>> >
>>>> Does "dependency type" means the <type> element inside <dependency>? If
>>>> yes, then specifying a different type causes Maven to download a
>>>> different JAR, without changing the kind of path (class path versus
>>>> module path) where the JAR is put. The proposed <usage> element (or
>>>> whatever equivalent alternatives) has the opposite semantic: it does
>>>> not
>>>> change the JAR to download, but put it on a different kind of path.
>>>>
>>>>      Martin
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>>>> For additional commands, e-mail: dev-h...@maven.apache.org
>>>>
>>>>

Reply via email to