Re: Multiple source roots?
Laszlo Kishalmi <[email protected]> Thu, 18 Sep 2025 20:33:31 -0700
| Newsgroups | gmane.comp.java.ide.netbeans.user |
|---|---|
| Message-ID | <[email protected]> |
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 > >