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



Reply via email to