Moving From Adobe Flex 4.6 to Apache Flex 4.13 with FlexMojos
I was very excited for the handover of the Flex project from Adobe to an Apache project. After a few years I was finally given permission to move our product from Adobe Flex 4.6 to Apache Flex 4.13. Here are my notes on the process in the hopes that they help somebody else in the same situation.
For some background our product was compiling using FlexMojos 4.0-RC1 and Adobe Flex version 4.6. I decided to go with the least moving parts approach, which meant I made the upgrade in two steps. First I upgraded the FlexMojos version to version 6.0.1 and then I upgraded to FlexMojos 7.0.1 and Apache Flex 4.13.
Up first was the upgrade to FlexMojos 6.0.1. This version of FlexMojos supports both Adobe and Apache SDK’s, but due to difficulties in supporting two different group ids, it uses the com.adobe groupID for all types of artifacts. I followed details available on FlexMojos 6.0 wiki page and its child page specifically for migrating to FlexMojos 6.
- Upgrade to Maven 3.0.5 (required for FM6)
- Changed the FlexMojos version property in my parent pom file to 6.0.1
- Changed the group id for the FlexMojos plugin from org.sontaype.flexmojos to net.flexmojos.oss
- Update the playerglobal dependency
- Group ID = com.adobe.flash.framework
- Artifact ID = playerglobal
- Remove version that points to Flex SDK
- Update classifier tags to version
- Update the flexmojo.version property in the root pom to 7.0.1
- Update the flex sdk version property in the root pom to 184.108.40.20640701
- Updated the old groupID of com.adobe.flex to org.apache.flex for several dependencies. In my case there were some instances where the old group id was valid because I had some automation libraries that I still don’t have artifacts for and also for some exclusions.
- Remove the license jar dependency.
- Updated the flexframework artifact name to framework and fixed the group id for it to org.apache.flex
- Updated the theme dependency so it doesn’t have a classifier and instead of the type being css it is now swc.
- Updated the theme dependency’s group id to org.apache.flex.framework.themes
- Updated all the Flex dependencies from the scope of “caching” to “rsl”, because there aren’t any swz files for Apache Flex libraries
- Updated the group id for all automation libraries to org.apache.flex.framework.automation
- Remove the “_rb” from the automation artifact names and added a new classifier of “.rb”