Refactoring JavaFX Builds & Sources

Roman Kennke roman at kennke.org
Fri Oct 19 06:55:52 PDT 2012


Am Freitag, den 19.10.2012, 15:31 +0200 schrieb Mario Torre:
> > Further more, you should be able to do "find usages" in your IDE and get EVERYTHING IN THE UNIVERSE, rather than right now where in NB it doesn't have enough information about the 160 other projects in our system to be able to do this. This is bad.
> >
> > Right now we build with ant. Many of you have suggested Maven. Some of you at JavaOne suggested Gradle. I am presently looking into Gradle. The key things I like about Gradle are:
> >
> >         1) It isn't XML
> >         2) Like Ivy & Maven, it handles dependencies well
> >
> > We presently have a pile of XML files and nasty build logic for downloading dependencies (this is all in the closed repo, but you would be exposed to the horror if we just made it all public). I wanted instead to use Ivy at the very least, but rather if I can get better build happiness from another setup entirely (like Gradle) then I might as well give it a try.
> 
> I kind of like Gradle, but let me put the cart before the horse here
> (I don't know if this sounds as well in English as it is in Italian,
> where we actually use the oxen, but well :)
> 
> While Maven is a well understood tool, Gradle is fairly new. This
> turns to be especially problematic when building and shipping on Linux
> distributions because there are some constraints and limitation on
> what can go or not in a given release (btw, I think this could be
> considered a problem on Windows and OSX installations in some
> environments where you can't simply install any tool you want).
> 
> Maven, on the other end, is pretty likely sitting on your machine
> already (as are Make, GCC and Configure most of the time on developers
> machines), so I suspect it will be easier for the average folk as well
> as heavily filled packager to take care of the build bits.

I totally agree with this, but would take a view from the IDE angle at
it. I still remember the days when Maven was 'young' (i.e. just a few
years old ;-) ), there was an Eclipse plugin, but it was horror. Only
recently the Eclipse-Maven plugin evolved into something truly useful. I
don't know how good or bad a Gradle plugin for Eclipse does though, or
if it even exists (I am sure it does).

However, there is more to this than just that. JavaFX comes with a bunch
of native code (quite a lot, I'd figure). The IDE extensions for C/C++
hacking (e.g. CDT for Eclipse) are usually really good at handling
configure/make style projects, but totally lack support for anything
else (e.g. Maven, Ant or even Gradle). That is in part due to the fact
that Maven, Ant (dunno about Gradle) themselves are not that well-suited
for building C/C++ code. For example, I am completely hacking on
OpenJDK/Hotspot using Eclipse, with just make, and it wasn't even
difficult to setup, and yes, I can hit 'go' and it builds+runs whatever
I want with my code or 'find' and it finds everything in the universe
(both C/C++ and Java).

So, from my point of view, what would work well is probably make for
native code and ant or maven or whatever for Java code (and just call
one from the other to make it a nicely integrated build).

Roman




More information about the openjfx-dev mailing list