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 >>> >>>