GradleFx/GradleFx — pull request #162 by SlevinBE (2014-12-28 08:32:05+00:00)
Title: Major refactoring of the CLI

A much needed major refactoring of the CLI (basically the guts of GradleFx) to make GradleFx easier to maintain:

upgrade to groovy 2.3.3 (mostly for Trait support)
upgrade to Gradle 2.0
re-introduction of the frameworkLinkage.none property to support pure AS projects using the Flex SDK, which now shouldn't be such a burden on the code with this refactor
split up all the common compiler option manipulations into "option injectors", which can then be composed in the compiler instruction cookbooks
Extracted the compiler process itself from the CommandLineInstruction class to a CompilerProcess class
Introduction of compiler instruction "cookbooks", which define what needs to happen for a specific type of application/library. This removes the complex if-else blocks and makes each cookbook focused on one type of application/library.
Basically, it keeps all the old projects working while also providing all the new features of @matyasatfp PR. It should now be much easier to determine what exactly happens (in terms of compiler option logic) for each type of project, since almost each type has now its own compiler instruction cookbook, which simply is a listing of what needs to happen. This is achieved with Trait composition.

I've tested this against @matyasatfp sample ios-mobile project (located matyasatfp/GradleFx-Examples@1778c31), which will now (with some modifications) also be integrated into the GradleFx-testbed project for regression testing. Tasks that were executed: 'compile', 'test', 'flashbuilder', 'idea' (not package, since I don't have a provisioning file or certificate)

@RIAstar @matyasatfp if you guys have time, feel free to review