I don’t think you should verify whether there are profiles which define 
subprojects.
There could be profiles defined elsewhere - in parent, in settings.xml, 
profiles.xml, I’m afraid this could make the behaviour really weird from user 
POV.

What do you think about distinquishing cases with absent <subprojects> tag and 
empty (<subprojects/>) one to disable scanning - in the same way it is done 
with <relativePath>?

Thanks, Alex

> On 15 Sep 2025, at 3:11 PM, Guillaume Nodet <gno...@apache.org> wrote:
> 
> Le lun. 15 sept. 2025 à 14:49, Thomas Reinhardt <tho...@reinhardt.com 
> <mailto:tho...@reinhardt.com>> a
> écrit :
> 
>> 
>> Wow, I missed that one.
>> 
>> I'm not sure I like this kind of automatism (module discovery).
>> 
>> Maybe this also breaks some plugins? For example: I have more than one
>> custom plugin that simply reads the root POM and extracts the modules
>> for further processing. Of course that also ignores modules in profiles
>> so maybe a non-issue there. I have to think more about this.
>> 
>> Also, seems to be a good way to slow down your builds. Scanning
>> directories is somehow expensive on some platforms.
>> 
> 
> It's only direct subdirectories (first level) which are scanned, so it
> cannot be insanely slow.
> 
> 
>> 
>> But if I am stating a <modules> (or the now preferred <subprojects>)
>> section in my root POM this behavior is disabled and only my actually
>> defined modules/subprojects are considered, right?
>> 
> 
> This is not specific to the root POM.  But yes, this behavior won't kick in
> for a given POM
> * if you have any explicit list of subprojects/modules in the POM
> * or if the modelVersion is 4.0.0
> * or if the packaging isn't `pom`
> The second assertion makes sure it cannot break existing Maven 3 projects.
> 
> But as I said, it's missing a verification that no profiles on this POM
> defines a subproject/module.
> THis is required in order to be able to activate some subprojects using
> profiles, without having
> any default subprojects when not using any specific profile.
> 
> 
>> 
>> 
>> 
>> Greeings,
>>        Thomas Reinhardt
>> 
>> On 15/09/2025 11:02, Guillaume Nodet wrote:
>>> I just replied on the issue.  This is the expected behavior for:
>>> * 4.1.0 models
>>> * which have a `pom` packaging
>>> * which defines no subprojects/modules
>>> In such cases, all direct subdirectories which contain a pom will be
>>> considered as subprojects.
>>> 
>>> However, I think the original idea of the rule `which defines no
>>> subprojects/modules` was to also check for profiles, else, there would be
>>> no way to actually enable/disable some subprojects based on a profile,
>>> which may be what #11114 is about.
>>> 
>>> Le ven. 12 sept. 2025 à 16:24, Nikita Skvortsov
>>> <nikita.skvort...@jetbrains.com.invalid> a écrit :
>>> 
>>>> Dear developers,
>>>> 
>>>> My colleague, +Alexander Bubenchikov <
>> alexander.bubenchi...@jetbrains.com>
>>>> discovered an interesting behavior of Maven 4.0.0-rc-4.  In short, Maven
>>>> picks up subprojects from subdirectories *without any
>> modules/subprojects
>>>> definition* in pom.xml (reported as  #11114
>>>> <https://github.com/apache/maven/issues/11114>).
>>>> 
>>>> Is it an expected behavior?
>>>> ---
>>>> Nikita Skvortsov
>>>> Java Build Tools Team Lead
>>>> 
>>>> JetBrains N.V. | KvK reg. nr. 56460279
>>>> Gelrestraat 16, 1079 MZ Amsterdam, The Netherlands
>>>> T: + 31 (0)20 205 01 18 | F: +31 (0)20 205 01 19
>>>> E: nikita.skvort...@jetbrains.com
>>>> 
>>> 
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> 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