I'm testing Gradle ant support https://docs.gradle.org/current/userguide/ant.html to load the Netbeans ant build system and launch it from Gradle. https://github.com/apache/netbeans/pull/2590
It isn't a radical change in the build system and it can allow us to improve the build system using the advantages of gradle without rewrite all. Laszlo, could you have a look in this and if it can help you? On 2020/03/16 16:42:20, Laszlo Kishalmi <[email protected]> wrote: > Well, I was thinking about that as well, unfortunately there are some > negative trade off-s with that I see right now. Maybe a way later down > on the road, if it ever comes that we switch to Gradle as a main build > system. > > So right now Gradle reads all 812 projects which gave a 8-10 seconds > overhead at the initial build startup (on my system), I've optimized a > bunch of things (rewrote the project.xml parsing in Java) and now it > take 3-4s to read all modules and set up the dependencies between them, > it also allows parallel module builds, so the pure platform (around 120 > modules) can be built in 25s. > > The build is clustered in a way that it has a build<cluster>Cluster task > to build just a specific cluster. Right now I'm just dreaming of to be > able to run anything (still fighting with some classpath issues running > the Unit tests), but I can imagine to have a ./gradlew > runPlatformCluster which builds and runs a barebone Platform and > ./gradlew runPhpCluster for those who cares more of Php. > > On 3/16/20 8:45 AM, Jaroslav Tulach wrote: > > Hello Laszlo, > > when you are at it, you might make the build system more "cluster based". > > It would be nice to > > ``` > > cd platform > > gradle run > > ``` > > and get a running barebone NetBeans Platform. Or rather > > ``` > > cd php > > gradle run > > ``` > > and get a PHP only distribution. We need to address this somehow as the > > NetBeans codebase is starting to become as big as it used to be and it is > > anoying to wait for compilation of all the features one doesn't really care > > about. > > > > Just my 2 Kč idea. Best regards. > > -jt > > > > > > > > so 7. 3. 2020 v 17:33 odesílatel Laszlo Kishalmi <[email protected]> > > napsal: > > > >> I read those, however not really in context of NetBeans. NetBeans has an > >> Ant based build system with a bunch of custom tasks. On module level it > >> is very effective, on cluster level it is not so. > >> > >> I'm doing this as of a personal challenge, fun and learn. If there would > >> be anything useful coming from it, I'll share. > >> > >> On 3/7/20 8:13 AM, Eric Bresie wrote: > >>> +1 > >>> > >>> I suspect you've probable reviewed some of these (1), (2), (3) already > >> but > >>> thought it might be of interest. > >>> > >>> (1) https://docs.gradle.org/current/userguide/migrating_from_maven.html > >>> (2) https://docs.gradle.org/current/userguide/maven_plugin.html > >>> (3) https://gradle.org/maven-vs-gradle/ > >>> > >>> Eric Bresie > >>> [email protected] > >>> > >>> > >>> On Sat, Feb 29, 2020 at 2:30 PM Scott Palmer <[email protected]> wrote: > >>> > >>>>> On Feb 27, 2020, at 8:22 PM, Laszlo Kishalmi < > >> [email protected]> > >>>> wrote: > >>>>> Dear all, > >>>>> > >>>>> I just would like to share the progress of my secret project: build > >>>> NetBeans with Gradle > >>>>> I'm still not sure how far I would like to go with this experiment, but > >>>> if nothing else it could be a good test data for the Gradle Support. > >>>>> I had the following milestones in my mind: > >>>>> > >>>>> M0: Done: Get the project dependencies straight, without having > >> circular > >>>> dependencies: Right now it has 813 sub-projects in the known clusters > >>>>> M1: Done: Get the modules in the Platform cluster (and the harness > >>>> cluster) compileable. > >>>>> M2: TBD: Make the unit tests pass for the Platform Cluster. > >>>>> > >>>>> M3: TBD: Make the output of the Platform cluster actually runable. > >>>>> > >>>>> How it works: > >>>>> > >>>>> I have a specific NetBeans Gradle Plugin which reads the > >>>> nbproject/clusters.properties and each module nbproject/project.xml > >> file to > >>>> get the dependency configuration. other configuration items are read > >> from > >>>> the nbproject.properties file. In theory we do not have to do any > >> changes > >>>> for an ordinary module it shall work out of the box without even having > >> a > >>>> build.gradle file. There are however some special cases where > >> build.gradle > >>>> file is required. Unfortunately there are some dependency tangles > >> between > >>>> the modules causing circular dependency in Gradle. In these cases I had > >> to > >>>> split up the modules between test and source projects. > >>>>> If anyone would like to have a look: > >>>>> > >>>>> please clone the gradle2 branch of my fork: > >>>> https://github.com/lkishalmi/netbeans > >>>>> The Gradle build right now needs the help to fetch the external > >>>> dependencies: ant download-all-extbins > >>>>> But after that one: > >>>>> > >>>>> ./gradlew buildPlatformCluster -x check > >>>>> > >>>>> shall work. (It currently requires JDK 11 or up) > >>>> This is great. Big +1. Getting the official build transitioned to a > >>>> modern build tool is an excellent idea. > >>>> > >>>> Scott > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: [email protected] > >>>> For additional commands, e-mail: [email protected] > >>>> > >>>> For further information about the NetBeans mailing lists, visit: > >>>> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists > >>>> > >>>> > >>>> > >>>> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: [email protected] > >> For additional commands, e-mail: [email protected] > >> > >> For further information about the NetBeans mailing lists, visit: > >> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists > >> > >> > >> > >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > For further information about the NetBeans mailing lists, visit: > https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
