Hi Alex, So I adjusted the native examples poms in your dual branch … now it seems to build successfully with maven.
Chris Am 07.03.17, 17:29 schrieb "Alex Harui" <aha...@adobe.com>: On 3/7/17, 4:36 AM, "Christofer Dutz" <christofer.d...@c-ware.de> wrote: >Hi guys and especially Alex, > >I would like to ask you to give a short summary at what you changed in >the dual branch. I don’t quite know as to what I should be looking for to >make Maven support to match. > >Could you please summarize what new compiler options/arguments, which >new/changed/obsolete compilation runs and how the packaging should have >changed? >Right now, I still see swc and js-swc as output of the compilation. I >would expect one single swc to come out and this to contain two >catalog.xml … ist that correct? The goal of dual was just to get two "stacks" of SWCs (one for SWF, one for JS) to work in the compiler. Merging the two swcs into one and renaming catalog.xml and library.swf is for later. Getting two "stacks" to work sets the foundation for merging later by first proving that we can in fact produce runnable SWFs and JS from separate stacks and that having two stacks allows us to find platform dependencies in our code. So, there are still two SWCs produced from each frameworks/projects folder. However, instead of calling the JS oriented one a "typedefs" SWC, I changed it to be a "js" classifier because the JS swc is now used to build the JS app. Before, the JS-oriented SWC was primarily used to generate downstream JS-oriented SWCs so the "typedefs" classifier made more sense. The default SWC is the same as before. It contains a library.swf compiled with COMPILE::SWF,true and thus the code inside is used for linking into SWFs. It contains the cross-complled JS output like before which was compiled with COMPILE::JS,true. And it contains any defaults.css like before. The "js" SWC is a bit different. It contains a library.swf compiled with COMPILE::JS,true just like before, but now it also contains the cross-compiled JS output (with COMPILE::JS, true) and any defaults.css. So it is more of a peer of the main SWC, it just has a different library.swf. In order to do this, I still use CompileASMojo to build the default SWC. I think the main changes there are that I switched the name of compile-as-config.xml to compile-swf-config.xml, but more importantly, I switched the mojo to use the FlexJS version of compc because the compc from compiler-jx now can produce both SWF and JS output (by calling the compc from the compiler folder for SWF output). So, CompileASMojo also learned how to filter artifacts and sort the js ones into js slots in the -config.xml file. The CompileJSMojo also now uses the compc from compiler-ix and filters artifacts a bit differently to produce the "js" swc. Then, once the framework is built, the CompileAppMojo now only needs one default execution since it now calls the compiler-ix version of MXMLC (MXMLJSC) which also now knows how to build both a SWF and JS output in one execution. So I took the second execution that had outputJavaScript=true out of the pom.xml. The main new compiler option is -compiler.targets which takes a set of strings like "SWF, "JSFlex", "JS", "JSNode". You can set compiler.targets to one or more of these to dictate what output you want. Then in order to support that, lots of existing options got platform-specific options so there is now a js-external-library-path and swf-external-library-path as well as the old external-library-path option. That way you can specify one -config.xml file for all output targets. I have essential obsoleted the -js-output-type parameter. Folks should use -compiler.targets instead for building SWCs and apps. Js-output-type is still used by ASDoc though. I think that's about it, although I'm sure I forgot to mention something. I won't be too surprised if I did something that isn't with the Maven philosophy. My main goal was to get MXMLJSC to output both SWF and JS so it would work better with most IDEs since most IDEs only know how to launch one compiler. And that has nothing to do with Maven. But once I got that working I decided that maybe Maven would prefer to have both outputs from one execution as well. HTH, -Alex > >Thanks in advance, > Chris