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