Well, just checked the project.
It seems to be a hermit one.
There is a reason why build systems are tend to be declarative. Gradle
can be both declarative and imperative and anything between them.
`bld` is a perfect tool for hermits. Though it comes with a project
structure recommendation. Even that one is not followed here. Builds
should not be complex. Not even here. If functions are well defined,
separated, then there is no reason to unjar junit jar files, and create
something new out of them, etc.
I respect that you see the world in your own way.
On 9/18/25 16:36, Blake McBride wrote:
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