blob: 5fe8713299fea3025331c597c6d45683c27d97be [file] [log] [blame]
Apache Flex SDK Converter
=========================
The Apache Flex SDK Converter tool is used to convert the Apache and Adobe
Flex SDKs and Air SDKs into Maven artifacts. Automatically creating the
Directories, pom-files, copying and moving the resources to the correct
destinations.
These artifacts can be used in Maven builds using the Flexmojos plugin
(Starting with version 6.x).
The Apache Flex SDK Converter comes with all the means to download, convert
and deploy a mavenized form of an Apache Flex SDK.
The Converter does not simply copy all java libraries to the destination; it checks
if the given artifact has already been deployed to maven central or by deploying an
other FDK previously. For this check you do need an internet connection to do the
conversion, otherwise it will probably take forever.
Internally it consists of 3 components:
- One Retriever
- DownloadRetriever: For downloading binary artifacts
- Four Converters
- One for producing the Apache Flex SDK artifacts
- One for producing the Adobe Flash artifacts
- One for producing the Adobe Air artifacts
- One for producing the Adobe Fontkit artifacts
- Two Deployers
- One using Aether with no requirement to Maven (Faster, but less configurable)
- One using a local Maven installation (A lot slower, but fully configurable)
Getting the latest sources via git
==================================
Getting the source code is the recommended way to get the Apache Flex SDK
Converter.
You can always checkout the latest source via git using the following
command:
git clone https://git-wip-us.apache.org/repos/asf/flex-utilities.git flex-utilities
cd flex-utilities/flex-maven-tools/flex-sdk-converter
git checkout develop
Building the Apache Flex SDK Converter
======================================
The Apache Flex SDK Converter is a relatively simple project. It requires some
build tools which must be installed prior to building the compiler and it depends
on some external software which are downloaded as part of the build process.
Some of these have different licenses. See the Software Dependencies section
for more information on the external software dependencies.
Install Prerequisites
---------------------
Before building the Apache Flex Compiler you must install the following software
and set the corresponding environment variables using absolute file paths.
Relative file paths will result in build errors.
==================================================================================
SOFTWARE ENVIRONMENT VARIABLE (absolute paths)
==================================================================================
Java SDK 1.7 or greater but smaller than 12 (*1) JAVA_HOME
Maven 3.1.0 or greater (*1) MAVEN_HOME
==================================================================================
*1) The bin directories for MAVEN_HOME and JAVA_HOME should be added to your
PATH.
On Windows, set PATH to
PATH=%PATH%;%MAVEN_HOME%\bin;%JAVA_HOME%\bin
On the Mac (bash), set PATH to
export PATH="$PATH:$MAVEN_HOME/bin:$JAVA_HOME/bin"
On Linux make sure you path include MAVEN_HOME and JAVA_HOME.
Software Dependencies
---------------------
The Apache Flex SDK Converter uses third-party code that will be downloaded as
part of the build.
The Apache Version 2.0 license is in the LICENSE file.
The following dependencies have licenses which are, or are compatible with,
the Apache Version 2.0 license. You will not be prompted to acknowledge the
download. Most of the jars are installed in your maven local repository and
are included in the assembly jars.
TODO: Add them all here ...
Building the Source in the Source Distribution
----------------------------------------------
The project is built with Apache Maven so for a reference to Maven commands
please have a look at the Maven documentation.
When you have all the prerequisites in place and the environment variables
set (see Install Prerequisites above) use
cd <flax-sdk-converter.dir>
mvn install
to download the third-party dependencies and build the binary from the source.
To clean the build, of everything other than the downloaded third-party
dependencies use
mvn clean
The packages can be found in the "target" subdirectories.
The particularly interesting one is the Standalone Command Line Interface:
- cli/target/apache-flex-sdk-converter-1.0.0.jar
Using the Apache Flex SDK Converter
===================================
The CLI (Command Line Interface) allows the Apache Flex SDK Converter
to be executed from the command-line. Assuming the Java executable is
available on the current systems path, it can be called using:
cd <flex-sdk-converter.dir>/cli/target
java -jar apache-flex-sdk-converter-1.0.0.jar
If executed without any command, it will output a list of commands and
available properties.
In general it is able to perform 4 different commands:
- help Prints a list of all commands and options available.
- list Lists all versions and platforms available for download
- download Downloads selected versions and assembles an FDK
- convert Converts a previously installed (using the installer) or
assembled (using download command) FDK into a mavenized form.
- deploy Uploads previously created maven artifacts to a remote repository.
Some typical usage scenarios
----------------------------
- Create a mavenized version of a previously installed FDK (Using the installer):
"... -fdkDir <FDK install dir> -mavenDir <maven local repo> convert"
- Download and create an FDK (Flex 4.14.1 with playerglobal 17.0 and 16.0
AIR SDK 17.0 for Windows and Mac and the fontkit libs):
"... -fdkDir <FDK target dir> -flexVersion 4.14.1 -flashVersions 17.0,16.0 \
-airVersion 17.0 -platform WINDOWS,MAC -fontkit download"
- Download and convert an FDK (FDK assembled in temp directory using Air for
current systems platform only):
"... -flexVersion 4.14.1 -flashVersions 17.0 -airVersion 17.0 -fontkit \
-mavenDir <maven local repo> download convert"
- Deploy a bunch of maven artifacts to a remote maven repository:
"... -mavenDir <dir with maven artifacts> -repoUrl <url> \
-repoUsername <username> -repoPassword <pasword> deploy"
- "The works": Download, Convert and Deploy using only temp directories:
"... -flexVersion 4.14.1 -flashVersions 17.0 -airVersion 17.0 -fontkit \
-repoUrl <url> -repoUsername <username> -repoPassword <pasword> \
download convert deploy"
Thanks for using Apache Flex. Enjoy!
The Apache Flex Project
<http://flex.apache.org>
/////////////////////////////////////////////////////////////////////////////////////////
Some information (HOWTO) to go with the deployer artifacts
/////////////////////////////////////////////////////////////////////////////////////////
The deployers are separate modules. Currently two implementations exist.
1. The Maven deployer (located in deployers/maven/target/maven-deployer-1.0.0-full.jar)
2. The Aether deployer (located in deployers/aether/target/aether-deployer-1.0.0-full.jar)
The Maven-Deployer expects Maven to be installed on your system and issues a set of
commandline commands in order to deploy the artifacts. This is the safest approach if you
haven any special settings that need to be handled in order to deploy the artifacts.
The Aether-Deplyoer uses the Maven-Internal aether libraries to deploy the artifacts from
within the running JVM. This makes this approach a lot faster than the Maven-Deployer.
/////////////////////////////////////////
Usage for the Maven Deployer:
/////////////////////////////////////////
java -cp {home}/deployers/maven/target/maven-deployer-1.0.0-full.jar "directory" "repositoryId" "url" "mvn"
The Maven-Deployer needs 4 ordered parameters separated by spaces:
1- directory: The path to the directory to deploy.
2- repositoryId: Server Id to map on the <id> under <server> section of settings.xml.
3- url: URL where the artifacts will be deployed.
4- mvn: The path to the mvn.bat / mvn.sh.
/////////////////////////////////////////
Usage for the Maven Deployer:
/////////////////////////////////////////
java -cp {home}/deployers/aether/target/maven-aether-1.0.0-full.jar "directory" "url" ["username" "password]
The Aether-Deployer needs 2 ordered parameters separated by spaces:
1- directory: The path to the directory to deploy.
2- url: URL where the artifacts will be deployed.
Optionally you can provide the username and password that is used for deploying artifacts.
3- username: The username needed to log-in to the remote repository.
4- password: The password needed to log-in to the remote repository.