Again, one example of the many reasons I wrote bld.

Using Maven as a project description for an IDE is not a good idea, IMO.
Maven is too verbose and limited. Gradle is just as bad.

Maven and Gradle are mostly declarative. bld is imperative. Declarative
systems are generally simpler so long as you are doing the typical things.
As soon as you go outside their box, it either gets incredibly complex real
fast or you just bump up against their limitations. Imperative systems are
generally a bit more complex, but their functionality is unlimited and
their complexity is flat. They can do anything with trivial changes.
Declarative build systems are always limited and inordinately complex when
you go outside their box.

IMO, imperative build systems are better, period.

On the other hand, IDE project files are far more declarative. If you
augment them with an imperative element, they can be perfect.

Trying to use a build system as an IDE project description file works in
very simple cases but falls apart in complex cases.

It would be best if the industry created a standard, descriptive, simple
project description format that had imperative extensions that are used by
the build system but ignored by the IDE. XML would literally be the worst
format for that file. JSON would be far better. INI file format would be
best.

Clearly, pom.xml files are inadequate. Perhaps NetBeans can lead the way.
I'd be happy to be part of the team laying out the spec for the file, but I
just don't have enough time to implement it. Let me know if there is
interest.
--blake



On Thu, Sep 18, 2025 at 4:44 PM Martin Desruisseaux
<[email protected]> wrote:

> Le 18/09/2025 à 22:42, Blake McBride a écrit :
>
> If you have *multiple source roots*, Maven itself only supports a *single*
> <sourceDirectory> and <testSourceDirectory> in the <build> section. To
> handle *more than one*, you need to *declare one as the “main”* and then
> use the build-helper-maven-plugin to add the rest.
>
> The above describes Maven 3. There is a new way to declare sources in
> Maven 4, which allows multiple source roots. Maven 4 is not yet GA (latest
> version is 4.0.0-rc-4), not all plugins have been updated, and I don't know
> how advanced is the Maven 4 integration in NetBeans. But I guess that the
> situation will get good improvements in the next 10 months.
>
>     Martin
>
>
>

Reply via email to