... makes resolver STOP _whatever_ the referenced POM list as dependencies
(basically does not matter, the node once collected will NOT dive into
getting possible children).

T

On Mon, Oct 30, 2023 at 9:58 PM Tamás Cservenák <ta...@cservenak.net> wrote:

> The fat* mechanism is already present even in maven 3.9, but not so
> visible:
>
> https://github.com/apache/maven/blob/maven-3.9.x/maven-artifact/src/main/java/org/apache/maven/artifact/handler/ArtifactHandler.java#L51
>
> Is "fat" when this method returns true.
>
> Moreover, the new type would give you (as a consumer) more control, it
> allows you to NOT depend on upstream publisher (is he rewriting POM? Does
> he do a good job rewriting it? etc). If you declare your dependency as
> "fatjar" and not just "jar", or "fatmodule" not just "module", it makes
> resolver STOP.
>
> Thanks
> T
>
> On Mon, Oct 30, 2023 at 9:53 PM Tamás Cservenák <ta...@cservenak.net>
> wrote:
>
>> Howdy,
>>
>> The fat* is needed to STOP resolver resolving further external
>> dependencies (or in-reactor ones), it gives you more control to _express_
>> this case to Maven.
>>
>> Typical case:
>> - you have in reactor "uber" JAR built (with replace POM set)
>> - hence, you deploy the rewritten POM, so for consumers you are OK
>> - BUT _within reactor_ Maven will NOT (and cannot) be aware of
>> _rewritten_ module, so you need to "exclude all" in subsequent modules
>> depending on uber module:
>>
>> https://github.com/maveniverse/mima/blob/main/cli/pom.xml#L83-L94
>> So, this one would need to be type="fatjar" and result would be same but
>> more expressive:
>>
>> Basically these just extend the "vocabulary" to express what it is.
>>
>> T
>>
>> On Mon, Oct 30, 2023 at 9:35 PM Henning Schmiedehausen <
>> henn...@schmiedehausen.org> wrote:
>>
>>> I don't understand fatjar and fatmodule. Why would we need that? How
>>> would
>>> maven treat this different from a regular jar / module ?
>>>
>>> -h
>>>
>>>
>>>
>>> On Sun, Oct 29, 2023 at 8:10 AM Tamás Cservenák <ta...@cservenak.net>
>>> wrote:
>>>
>>> > Howdy,
>>> >
>>> > The current draft of types we want to introduce (and  packaging):
>>> > https://gist.github.com/cstamas/4e9bcbef25ce912a90ad1e127b0c5db8
>>> >
>>> > ===
>>> >
>>> > Romain, I don't understand your "This is wrong, downstream is either
>>> module
>>> > or jar", as it was actually you and your example that mentioned "once
>>> put
>>> > it here, once put it there". Nothing is lost IMHO, just like in case of
>>> > "takari-jar" nothing is lost.
>>> >
>>> > Or if we misunderstood each other: by "downstream" I mean "down the
>>> road,
>>> > when a project being built, is about to be consumed as dependency".
>>> >
>>> > And the point is, that exactly due ArtifactHandler/ArtifactType/Type
>>> (in
>>> > mvn4), Maven "sees" it as "jar" or "module" or whatever, but for
>>> resolver,
>>> > those two are _same thing_. It is _same file_. And this is the crux,
>>> as for
>>> > the resolver, it is really about getting that one file, while the type
>>> (for
>>> > Maven) tells HOW to make use of it. So for resolving, there is no any
>>> kind
>>> > of "lost" information, again, the very same way it works for
>>> "takari-jar".
>>> >
>>> > T
>>> >
>>> > On Sun, Oct 29, 2023 at 3:52 PM Romain Manni-Bucau <
>>> rmannibu...@gmail.com>
>>> > wrote:
>>> >
>>> > > Le dim. 29 oct. 2023 à 15:29, Tamás Cservenák <ta...@cservenak.net>
>>> a
>>> > > écrit :
>>> > >
>>> > > > Howdy,
>>> > > >
>>> > > > So to return to the "root" idea (of Maven), Maven is "declarative",
>>> > where
>>> > > > users should declare what they want, it should most certainly not
>>> > "guess"
>>> > > > what user intent is. As long as we have "magical implicit
>>> guesswork"
>>> > > (like
>>> > > > that in javadoc) present in process, it is bad, as that means we
>>> do not
>>> > > > allow our users to express their goal.
>>> > > >
>>> > >
>>> > > Yes and i liked that but we broke it with forcing plugin version
>>> locking
>>> > > (for good) so we can need to revise our root too to match current
>>> world
>>> > > which is no more unique, makes years we ignore that fact but it
>>> already
>>> > > blows up.
>>> > >
>>> > > So my 2cts are  we cant by design here, we tried hard and failed, not
>>> > > technically but by design.
>>> > >
>>> > >
>>> > >
>>> > > > Originally Mojos were envisioned to be simple, focused, doing one
>>> thing
>>> > > and
>>> > > > doing it well (a la UNIX tools). Some plugins went in the total
>>> > opposite
>>> > > > direction, as they became Godzilla plugins (with unmaintainable
>>> complex
>>> > > and
>>> > > > large amounts of "logic" -- guess logic and bloated codebase)
>>> targeting
>>> > > to
>>> > > > solve "everything". This also resulted in our users assuming "every
>>> > > problem
>>> > > > should have a corresponding Mojo" (this also steered toward
>>> bloated,
>>> > over
>>> > > > complex Mojos), where many many other aspects and capabilities of
>>> Maven
>>> > > > were totally neglected, like lifecycle, custom packaging and so on.
>>> > > >
>>> > > > In short, Romain, yes, today, you CAN build all sort of things in
>>> > "smart
>>> > > > way", just like cooking a soup: get a good base (packaging), add a
>>> > little
>>> > > > bit of this (mojo A) and a little bit of that (mojo B) and voila,
>>> you
>>> > > will
>>> > > > end up with a "soup". And it works, yes, but this "smart" way has
>>> many
>>> > > > pitfalls along the way, with most problematic of not being
>>> explicit.
>>> > But
>>> > > by
>>> > > > doing that, your build becomes Ant-ish (imperative-ish), and you
>>> are
>>> > > > sliding off the declarative path.
>>> > > >
>>> > >
>>> > > For cases needing it and all the mentionned ones are (and will) NOT
>>> (be)
>>> > > mainstream.
>>> > > So all good IMHO.
>>> > >
>>> > >
>>> > > > Also, you ARE aware that if you build a project w/ packaging=module
>>> > (that
>>> > > > as output has an artifact with extension jar), you DON'T HAVE TO
>>> > address
>>> > > it
>>> > > > downstream (when you depend on it) as "module", right? This is the
>>> > actual
>>> > > > reason why I brought up Takari Lifecycle, as there you are building
>>> > > > projects with packaging=takari-jar, but when you consume those, you
>>> > refer
>>> > > > to them as type=jar, and not as type=takari-jar, right?
>>> > > >
>>> > >
>>> > > This is wrong, downstream is either module or jar, here you loose if
>>> it
>>> > is
>>> > > a module transitively and module assume all transitive deps are
>>> which is
>>> > > very often wrong so it does not work downstream.
>>> > >
>>> > >
>>> > > > So, I have a feeling that you bring bold conclusions (like "Your
>>> > solution
>>> > > > is valid technically but does not solve the original issue"), you
>>> do
>>> > not
>>> > > > really understand what I am trying to say here.
>>> > > >
>>> > >
>>> > > Hooe you are true but trust me i went where you are and my
>>> conclusion is
>>> > it
>>> > > cant be done right for enough projects to be worth it.
>>> > >
>>> > >
>>> > > > Also, "this" certainly does NOT "work well today" (even in this
>>> thread
>>> > > poor
>>> > > > tooling mentioned), but true, you can hack-around it, or alike, but
>>> > none
>>> > > of
>>> > > > current solutions are explicit, declarative and naturally
>>> expressed in
>>> > > > Maven (but are bolted on).
>>> > > >
>>> > > > Finally, having anything "on top" of resolver is not gonna help
>>> > anything,
>>> > > > as Resolver is really about Artifacts only (Everything is an
>>> Artifact!)
>>> > > and
>>> > > > it is Maven on top of Resolver that should interpret these
>>> artifacts
>>> > > based
>>> > > > on user posed instructions (declarations). Resolver is really just
>>> > about
>>> > > > "getting" and "putting" artifacts, not USING them.
>>> > > >
>>> > >
>>> > > It foes cause it is not aboug resolver but enabling user to express
>>> path
>>> > > with maven abstraction, not resolution itself.
>>> > >
>>> > > Java is about paths, maven coordinates, we miss a link on user land
>>> to
>>> > make
>>> > > it smooth.
>>> > >
>>> > >
>>> > > > Thanks
>>> > > > T
>>> > > >
>>> > > >
>>> > > > On Sun, Oct 29, 2023 at 2:56 PM Tamás Cservenák <
>>> ta...@cservenak.net>
>>> > > > wrote:
>>> > > >
>>> > > > > Romain,
>>> > > > >
>>> > > > > it's probably me, but I have no faintest idea what you are
>>> trying to
>>> > > > say...
>>> > > > >
>>> > > > > What do you mean by "standalone"?
>>> > > > > What is the wrong packaging?
>>> > > > > Why will I lose the ability to specify where it goes? Also, as I
>>> said
>>> > > > > before, if you list project/deps gav:jar AND gav:module, you
>>> would be
>>> > > > > putting _one same JAR_ on both paths (would you really want
>>> that?)
>>> > > > > Also, here we are speaking about _dependencies_ but you suddenly
>>> > switch
>>> > > > to
>>> > > > > building a project?
>>> > > > >
>>> > > > > But one thing for sure: we need _less_ "guess logic" and not
>>> _more of
>>> > > > it_.
>>> > > > >
>>> > > > > I think we are not talking about the same thing(s) here, but
>>> again,
>>> > > it's
>>> > > > > just maybe me.
>>> > > > >
>>> > > > > T
>>> > > > >
>>> > > > > On Sun, Oct 29, 2023 at 1:32 PM Romain Manni-Bucau <
>>> > > > rmannibu...@gmail.com>
>>> > > > > wrote:
>>> > > > >
>>> > > > >> Le dim. 29 oct. 2023 à 12:44, Tamás Cservenák <
>>> ta...@cservenak.net>
>>> > a
>>> > > > >> écrit :
>>> > > > >>
>>> > > > >> > Can you provide a real example? As I don't quite understand,
>>> so
>>> > you
>>> > > > >> would
>>> > > > >> > have a dependency (a fat spring boot jar), that is a "module
>>> dep
>>> > is
>>> > > a
>>> > > > >> > module in compile/some tests but not at runtime (spring boot
>>> > > fatjar)".
>>> > > > >> So
>>> > > > >> > all this within one maven module (compile/test/runtime?).
>>> > > > >> >
>>> > > > >>
>>> > > > >>
>>> > > > >> You have an app (src/main/java), all the chain down the line
>>> uses
>>> > > > modules
>>> > > > >> cause compiler is standalone, surefire (junit-launcher) is
>>> > standalone,
>>> > > > >> javadoc etc...and the packaging phase (jar/war/fatjar/...) is
>>> not
>>> > > > >> standalone.
>>> > > > >> Then using module will make your build pass but your IT (if you
>>> have
>>> > > > else
>>> > > > >> your runtime) will not use that kind of construction/runtime.
>>> > > > >> the issue is as soon as you mark them modules then it must be
>>> module
>>> > > for
>>> > > > >> all plugins and therefore you will get a wrong packaging (think
>>> bnd
>>> > > for
>>> > > > >> ex)
>>> > > > >> or said otherwise you loose the consumption ability the JVM has
>>> > > > providing
>>> > > > >> both classpath and module path for the same jar (jlink requires
>>> deps
>>> > > to
>>> > > > be
>>> > > > >> modules but these modules can be used in the classpath most of
>>> the
>>> > > time,
>>> > > > >> in
>>> > > > >> particular in tests where it helps in several scenarii like
>>> > mocking).
>>> > > > >>
>>> > > > >> These are all valid features we don't want to break in maven.
>>> > > > >>
>>> > > > >> The consuming side is problematic since you restart from
>>> scratch,
>>> > all
>>> > > > the
>>> > > > >> jpms meta are to throw away cause we don't want to break the
>>> model
>>> > on
>>> > > > one
>>> > > > >> side and on another side it depends the consumer the way you
>>> consume
>>> > > it
>>> > > > >> and
>>> > > > >> dispatch the dependency on the classpath or module path.
>>> > > > >>
>>> > > > >> Your solution is valid technically but does not solve the
>>> original
>>> > > > issue,
>>> > > > >> it just moves it elsewhere IMHO.
>>> > > > >>
>>> > > > >> This already works well today at the cost of being explicit in
>>> the
>>> > > > plugins
>>> > > > >> configs and with your proposal it will still work at the same
>>> cost
>>> > > > (maybe
>>> > > > >> reversed).
>>> > > > >>
>>> > > > >> So ultimately I don't think it is a dep meta we need but more a
>>> > > wrapper
>>> > > > on
>>> > > > >> top of the resolver (the guess logic we have in plexus for ex)
>>> which
>>> > > > >> should
>>> > > > >> be easier to configure, maybe globally for the project and
>>> > ultimately
>>> > > > per
>>> > > > >> plugin (think "configuration" in gradle world of maven
>>> depencies set
>>> > > in
>>> > > > >> our
>>> > > > >> world)....or we just don't do anything and ease the dependency
>>> > > > referencing
>>> > > > >> (gav->path) to ease this explicit configuration - a bit like
>>> > including
>>> > > > >> dependencies:properties in core by default.
>>> > > > >>
>>> > > > >>
>>> > > > >>
>>> > > > >>
>>> > > > >> >
>>> > > > >> > T
>>> > > > >> >
>>> > > > >> > On Sun, Oct 29, 2023 at 12:37 PM Romain Manni-Bucau <
>>> > > > >> rmannibu...@gmail.com
>>> > > > >> > >
>>> > > > >> > wrote:
>>> > > > >> >
>>> > > > >> > > Le dim. 29 oct. 2023 à 12:12, Tamás Cservenák <
>>> > > ta...@cservenak.net>
>>> > > > a
>>> > > > >> > > écrit :
>>> > > > >> > >
>>> > > > >> > > > Given that jar (spring boot fatjar) is once this once
>>> that,
>>> > you
>>> > > > >> refer
>>> > > > >> > to
>>> > > > >> > > it
>>> > > > >> > > > in deps as needed:
>>> > > > >> > > > in one module is fat:jar in other is fat:module, as
>>> needed.
>>> > > > >> > > >
>>> > > > >> > > > You are the one explicitly telling what you want.
>>> > > > >> > > >
>>> > > > >> > >
>>> > > > >> > > In my example (and spring boot is not the only one, wars are
>>> > > another
>>> > > > >> > common
>>> > > > >> > > one, or any java command more generally) the two modules
>>> are a
>>> > > > single
>>> > > > >> > > one....and no doing two module would be worse than what we
>>> have
>>> > > > today.
>>> > > > >> > >
>>> > > > >> > >
>>> > > > >> > > > Thanks
>>> > > > >> > > > T
>>> > > > >> > > >
>>> > > > >> > > > On Sun, Oct 29, 2023 at 8:42 AM Romain Manni-Bucau <
>>> > > > >> > > rmannibu...@gmail.com>
>>> > > > >> > > > wrote:
>>> > > > >> > > >
>>> > > > >> > > > > Interesting but common case: a module dep is a module in
>>> > > > >> compile/some
>>> > > > >> > > > tests
>>> > > > >> > > > > but not at runtime (spring boot fatjar).
>>> > > > >> > > > > Back to explicit config in plugins and drop new module
>>> type?
>>> > > > >> > > > >
>>> > > > >> > > > > Le dim. 29 oct. 2023 à 07:46, Christoph Läubrich <
>>> > > > >> > m...@laeubi-soft.de>
>>> > > > >> > > a
>>> > > > >> > > > > écrit :
>>> > > > >> > > > >
>>> > > > >> > > > > >  > where properties are totally extensible,
>>> > > > >> > > > > >
>>> > > > >> > > > > > And if now I could supply additional properties from
>>> the
>>> > > > >> xml-model
>>> > > > >> > > ...
>>> > > > >> > > > > >
>>> > > > >> > > > > > Am 29.10.23 um 00:40 schrieb Tamás Cservenák:
>>> > > > >> > > > > > > And finally this is hardly gonna happen in Maven 3
>>> > > lifespan,
>>> > > > >> as
>>> > > > >> > > sadly
>>> > > > >> > > > > > > ArtifactHandler of it is quite limited: has only one
>>> > flag:
>>> > > > >> > > > > > >
>>> > > > >> > > > > >
>>> > > > >> > > > >
>>> > > > >> > > >
>>> > > > >> > >
>>> > > > >> >
>>> > > > >>
>>> > > >
>>> > >
>>> >
>>> https://github.com/apache/maven/blob/maven-3.9.x/maven-artifact/src/main/java/org/apache/maven/artifact/handler/ArtifactHandler.java#L55
>>> > > > >> > > > > > >
>>> > > > >> > > > > > > Sadly, Maven4 Type continued on this path, but
>>> luckily
>>> > we
>>> > > > are
>>> > > > >> in
>>> > > > >> > > > alpha,
>>> > > > >> > > > > > and
>>> > > > >> > > > > > > will propose a PR to type that currently looks like
>>> > this:
>>> > > > >> > > > > > >
>>> > > > >> > > > > >
>>> > > > >> > > > >
>>> > > > >> > > >
>>> > > > >> > >
>>> > > > >> >
>>> > > > >>
>>> > > >
>>> > >
>>> >
>>> https://github.com/apache/maven/blob/master/api/maven-api-core/src/main/java/org/apache/maven/api/Type.java#L80
>>> > > > >> > > > > > >
>>> > > > >> > > > > > > And would rework it to be more (if not same as) the
>>> > > resolver
>>> > > > >> > > > > > ArtifactType:
>>> > > > >> > > > > > >
>>> > > > >> > > > > >
>>> > > > >> > > > >
>>> > > > >> > > >
>>> > > > >> > >
>>> > > > >> >
>>> > > > >>
>>> > > >
>>> > >
>>> >
>>> https://github.com/apache/maven-resolver/blob/master/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/ArtifactType.java#L63
>>> > > > >> > > > > > >
>>> > > > >> > > > > > > where properties are totally extensible, for example
>>> > "add
>>> > > to
>>> > > > >> > > > classpath"
>>> > > > >> > > > > > is
>>> > > > >> > > > > > > really just one flag (added by ArifactType):
>>> > > > >> > > > > > >
>>> > > > >> > > > > >
>>> > > > >> > > > >
>>> > > > >> > > >
>>> > > > >> > >
>>> > > > >> >
>>> > > > >>
>>> > > >
>>> > >
>>> >
>>> https://github.com/apache/maven-resolver/blob/master/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/ArtifactProperties.java#L58
>>> > > > >> > > > > > >
>>> > > > >> > > > > > > So, ArtifactProperties could be extended with
>>> > > > >> > > > "constitutesModulePath",
>>> > > > >> > > > > > > "agent" and so on... To make this really extensible.
>>> > > > >> > > > > > >
>>> > > > >> > > > > > > In maven3 the ArtifactHandler this makes it
>>> impossible.
>>> > > > There
>>> > > > >> is
>>> > > > >> > > > still
>>> > > > >> > > > > > hope
>>> > > > >> > > > > > > in Maven 4
>>> > > > >> > > > > > >
>>> > > > >> > > > > > > Thanks
>>> > > > >> > > > > > > T
>>> > > > >> > > > > > >
>>> > > > >> > > > > > >
>>> > > > >> > > > > > > On Sun, Oct 29, 2023 at 12:32 AM Tamás Cservenák <
>>> > > > >> > > > ta...@cservenak.net>
>>> > > > >> > > > > > > wrote:
>>> > > > >> > > > > > >
>>> > > > >> > > > > > >> 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
>>> > > > >> > > > > > >>>>>>
>>> > > > >> > > > > > >>>>>>
>>> > > > >> > > > > > >
>>> > > > >> > > > > >
>>> > > > >> > > > > >
>>> > > > >> >
>>> > > ---------------------------------------------------------------------
>>> > > > >> > > > > > To unsubscribe, e-mail:
>>> dev-unsubscr...@maven.apache.org
>>> > > > >> > > > > > For additional commands, e-mail:
>>> > dev-h...@maven.apache.org
>>> > > > >> > > > > >
>>> > > > >> > > > > >
>>> > > > >> > > > >
>>> > > > >> > > >
>>> > > > >> > >
>>> > > > >> >
>>> > > > >>
>>> > > > >
>>> > > >
>>> > >
>>> >
>>>
>>

Reply via email to