ps: IMO even better if we apply a value-checker in xsd to ensure the
usable values.

Xeno Amess <xenoam...@gmail.com> 于2025年1月20日周一 12:26写道:

> @Guillaume Nodet
> dependency scope now sounds a mystery to me.
> 1. in mdo(and thus generated xsd), we declare there be 5 type of
> dependency scopes:
> [image: 截图 2025-01-20 12-19-01.png]
> means compile, runtime, test, system, provided
> 2. in the url website
> https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
> we declare there be 6 scopes, means *compile, **provided, **runtime, *
> *test, **system, **import,*
> [image: image.png]
> 3. in our codes, enum org.apache.maven.api.DependencyScope, there be 10
> enum elements...
> [image: 截图 2025-01-20 12-22-35.png]
>
> as 5 != 6 != 10, I wonder, at the time now, how many of the dependency
> scopes are correct/legal, and ready for users to use?
> for example, I cannot detect if 'none' is legal, because it is not
> provided usable in both website document and xsd. but it might actually be
> usable, because codes seems have it in.
> and I strongly suggest a sync for the 3 places...
>
> Guillaume Nodet <gno...@apache.org> 于2025年1月17日周五 17:44写道:
>
>> The code has undergone major refactoring in the past months, so any
>> pointer
>> you could find would be useless imho.
>> Basically, focus on impl/maven-impl and impl/maven-core, the other
>> subprojects are APIs or compatibility and should rarely be touched.
>> In your case, you're willing to alter the main model, which is located at
>>
>>
>> https://github.com/apache/maven/blob/master/api/maven-api-model/src/main/mdo/maven.mdo
>> A bunch of classes are generated from this file, just rebuild the whole
>> project.
>>
>> However, before trying to modify the model, I wonder if you can try
>> something like the following in the child:
>> <dependencies combine.self="override">
>>    ...
>> </dependencies>
>> This attribute is currently only used in XML configuration (so mainly for
>> plugin config), but maybe it would make sense to reuse it.
>>
>> And first, I'd also investigate the <scope>none</scope> idea, as this is
>> supposed to work afaik.
>>
>> Le ven. 17 janv. 2025 à 09:35, Xeno Amess <xenoam...@gmail.com> a écrit :
>>
>> > btw is there any good ways to learn about the details of the maven
>> project?
>> > etc books, or some articles, tutorials
>> > I read https://cwiki.apache.org/confluence/display/MAVEN/Index and
>> found
>> > nearly nothing useful for starters...
>> > I mean, not tutorial for how to use maven, but for how to
>> > design/modify/develop maven
>> >
>> > Xeno Amess <xenoam...@gmail.com> 于2025年1月17日周五 15:46写道:
>> >
>> > > jira ticket opened: https://issues.apache.org/jira/browse/MNG-8526
>> > >
>> > > mdo file modified, and please if any guy have any ideas please let me
>> > know
>> > >
>> > > Xeno Amess <xenoam...@gmail.com> 于2024年10月12日周六 10:45写道:
>> > >
>> > >> well I would like to implement the codes and fire a jira ticket this
>> > >> month, since seems nobody be strongly reject this...
>> > >>
>> > >> Richard Eckart de Castilho <r...@apache.org> 于2024年9月25日周三 23:26写道:
>> > >>
>> > >>> Ran into this also recently (again).
>> > >>>
>> > >>> I believe a good way to solve this would be to allow overriding a
>> > >>> dependency
>> > >>> inherited from the parent POM with `<scope>none</scope>` or
>> something
>> > >>> like that.
>> > >>>
>> > >>> I tried overriding with `<scope>provided</scope>` but for some
>> reason
>> > >>> that didn't seem to work.
>> > >>>
>> > >>> The context was trying that I typically have `slf4j-simple` as a
>> test
>> > >>> dependency for all
>> > >>> modules so I had added that to the parent, but then I had one module
>> > >>> where I absolutely
>> > >>> needed to use the log4j SLF4J binding and I couldn't get rid of the
>> > >>> `slf4j-simple` then
>> > >>> just for that module.
>> > >>>
>> > >>> That said, in general I would advise against inheriting dependencies
>> > >>> from parents.
>> > >>> Typically, you inherit too much and that means you'll have to add
>> > >>> excludes for the
>> > >>> dependency analyzer plugin as well... it's a mess.
>> > >>>
>> > >>> -- Richard
>> > >>>
>> > >>> > On 25. Sep 2024, at 17:17, Xeno Amess <xenoam...@gmail.com>
>> wrote:
>> > >>> >
>> > >>> > and another idea be we could add a <exclusions> and
>> > >>> <exclusionManagement>
>> > >>> > (kind of mirror to dependencies and dependencyManagement) to
>> remove
>> > >>> those
>> > >>> > dependencies from parent &EVERY dependency...
>> > >>> >
>> > >>> > Xeno Amess <xenoam...@gmail.com> 于2024年9月25日周三 22:59写道:
>> > >>> >
>> > >>> >> Hi.
>> > >>> >>
>> > >>> >> In maven3 we cannot exclude dependencies inherited from parent.
>> > >>> >>
>> > >>> >> see this
>> > >>> >>
>> > >>> >>
>> > >>>
>> >
>> https://stackoverflow.com/questions/2681759/is-there-anyway-to-exclude-artifacts-inherited-from-a-parent-pom
>> > >>> >>
>> > >>> >> That be kind of annoying if situation comes to be the parent-pom
>> be
>> > >>> >> maintained by others, and you extend it and it works fine until
>> one
>> > >>> day
>> > >>> >> they suddenlly decide to depend on some packages you would never
>> > make
>> > >>> >> compatible/useless, and you have no permission to change their
>> mind.
>> > >>> >> What I wanna do is adding such a gramma like this:
>> > >>> >>
>> > >>> >> <parent>
>> > >>> >>  <artifactId>base</artifactId>
>> > >>> >>  <groupId>es.uniovi.innova</groupId>
>> > >>> >>  <version>1.0.0</version>
>> > >>> >>  <exclusions>
>> > >>> >>    <exclusion>
>> > >>> >>      <groupId>javax.mail</groupId>
>> > >>> >>      <artifactId>mail</artifactId>
>> > >>> >>    </exclusion>
>> > >>> >>  </exclusions>
>> > >>> >> </parent>
>> > >>> >>
>> > >>> >> '
>> > >>> >> but I wanna hear about your opinions first.
>> > >>> >>
>> > >>>
>> > >>>
>> > >>>
>> ---------------------------------------------------------------------
>> > >>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>> > >>> For additional commands, e-mail: dev-h...@maven.apache.org
>> > >>>
>> > >>>
>> >
>>
>>
>> --
>> ------------------------
>> Guillaume Nodet
>>
>

Reply via email to