This Confluence has been LDAP enabled, if you are an ASF Committer, please use your LDAP Credentials to login. Any problems file an INFRA jira ticket please.

Child pages
  • Building FlexJS with Maven
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Recently we invested quite a lot of effort to make FlexJS buildable with Maven. This required quite some refactoring on all ends. But in the end it is now possible to build FlexJS with currently just one required Environment variable.

FlexJS consists of three parts: The compiler, typedefs and the framework, each is hosted in a separate GIT repository and have to be built and released separately. The order hereby is:

  1. Compiler
  2. Typedefs
  3. Framework

In addition to building the framework libraries, the framework module also assembles the binary distribution of the FlexJS SDK. It also has a feature of assembling a fully functional FlexJS distribution in a directory of choice, by setting an additional environment variable: distributionTargetFolder. If you set this to the path of a directory, the build will create a distribution there. This can then be used directly in your IDE of choice.

Step-by-step guide


  1. Install Java from:
  2. Install Maven 3.3.1 or greater from: (I used 3.3.9)
    1. Download the archive
    2. Unpack the archive
    3. Set your systems PATH to the bin directory (I usually define a MAVEN_HOME to the unpacked directory and then add $MAVEN_HOME/bin to the PATH)
  3. Download the Flash Debug Player for your system from:
    1. Set an environment variable called FLASHPLAYER_DEBUGGER and set it to the path of the Flash Debug Player executable (On windows and Linux machined this is trivial, on Mac's this will look something like this: {Place the Player is installed to}/Flash Player Debugger)
  4. Build Compiler (flex-falcon)
    1. Clone:

      git clone flex-falcon
    2. Go into the new directory:

      cd flex-falcon
    3. Build the utils: (This is optional as the build can also fetch the artifacts from Apache Snapshot Maven Repo)

      mvn -s settings-template.xml -P utils clean install
    4. Build the compiler:

      mvn -s settings-template.xml clean install

      This will execute all unit-tests and integration-tests. You can however run the build without any tests:

      mvn -s settings-template.xml -DskipTests -P utils clean install

      And if you just want to run the unit-tests and skip the integration-tests:

      mvn -s settings-template.xml -DskipITs -P utils clean install
  5. Build Typedefs (flex-typedefs)
    1. Clone:

      git clone flex-typedefs
    2. Go into the new directory:

      cd flex-typedefs
    3. Build the typedefs:

      mvn -s settings-template.xml clean install
  6. Build the Framework (flex-asjs)
    1. Clone:

      git clone flex-asjs
    2. Go into the new directory:

      cd flex-asjs
    3. Build the framework libs:

      mvn -s settings-template.xml clean install

      optionally you can also build the distribution binaries:

      mvn -s settings-template.xml -P build-distribution clean install

      optionally you can also build the distribution binaries and a local distribution (including dependencies for Flash, AIR) in a local directory:

      set distributionTargetFolder={some directory path}
      mvn -s settings-template.xml -P build-distribution clean install


The reason for specifying the "-s settings-template.xml" is that we currently are using unreleased artifacts for the mavenizer. If we don't explicitly tell maven to also look in the Apache Snapshot Repo, it will not find these. This option will no longer be needed as soon as we have released the Mavenizer for a first time.

  • No labels