Skip to content

Commit

Permalink
Merge pull request #42 from justinjmoses/version2
Browse files Browse the repository at this point in the history
Maven
  • Loading branch information
darscan committed Oct 31, 2011
2 parents dc4c91a + 3ba506c commit 648eb9f
Show file tree
Hide file tree
Showing 6 changed files with 298 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
/reports/*
/target/*
/dist/*
/target

.actionScriptProperties
.flexProperties
Expand All @@ -29,3 +30,5 @@ src/FlexUnitApplication.mxml
*.iml
*.ipr
*.iws

target/test-classes/TestRunner.mxml
41 changes: 41 additions & 0 deletions Maven-README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
Maven usage
=====

Installation
------

__Step 1: Install Maven 3.0.3+__

[Download from here](http://maven.apache.org/download.html)

__Step 2: Ensure maven binaries are on your PATH (ie. you can run `mvn` from anywhere)__

Follow the installation instructions from [here](http://maven.apache.org/download.html#Installation).

__Step 3: CD to the robotlegs root (where the POM.xml lives)__

__Step 4: Install the third party dependencies into your local repository__

* In OS X

bash -x maven-runonce.sh

* In Windows

maven-runonce.bat

>Note: we do this because unlike Ant, Maven requires all dependencies live within a repository somewhere. Because none of these dependencies are hosted externally on a remote repository, we need to install them locally into the repository. Going forward, the hope is that many of these dependencies will live in Maven Central, negating the need to install them locally. JM.

To build
-----
In order to build Robotlegs from source, run the following command in the Robotlegs root folder.

mvn clean install -s settings.xml


Alternative to supplying settings
-----
If you would rather not supply `-s settings.xml` for every build, you can add the repository information from settings.xml into your local repository. Alternatively, you can simply copy the robotlegs settings.xml to `~/.m2/settings.xml` where ~ is your user directory (`\Users\username` in Win7+)

> __Why do we need the settings file?__ While Flexmojos lives within Maven Central, its dependencies (such as the Flex compiler) and flash project dependencies (such as framework SDKs) do NOT. They live within the flexgroup branch off (sonatype)[http://repository.sonatype.org/content/groups/flexgroup/].
5 changes: 5 additions & 0 deletions maven-runonce.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
mvn -s settings.xml install:install-file -Dfile=lib/SwiftSuspenders-v2.0.0b1.swc -DartifactId=swiftsuspenders -DgroupId=org.swiftsuspenders -Dversion=2.0.0-b1 -Dpackaging=swc
mvn -s settings.xml install:install-file -Dfile=lib/as3commons-logging-2.7.swc -DartifactId=as3commons-logging -DgroupId=org.as3commons -Dversion=2.7 -Dpackaging=swc
mvn -s settings.xml install:install-file -Dfile=lib/flexunit-4.1.0-8-flex_4.1.0.16076.swc -DgroupId=com.adobe.flexunit -DartifactId=flexunit -Dversion=4.1.0-8 -Dpackaging=swc -Dclassifier=flex
mvn -s settings.xml install:install-file -Dfile=lib/hamcrest-as3-flex-1.1.3.swc -DgroupId=org.hamcrest -DartifactId=hamcrest-as3 -Dversion=1.1.3 -Dpackaging=swc -Dclassifier=flex
mvn -s settings.xml install:install-file -Dfile=lib/mockolate-0.12.1-flex.swc -Dversion=0.12.1 -Dclassifier=flex -Dpackaging=swc -DgroupId=mockolate -DartifactId=mockolate
6 changes: 6 additions & 0 deletions maven-runonce.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/bash
mvn -s settings.xml install:install-file -Dfile=lib/SwiftSuspenders-v2.0.0b1.swc -DartifactId=swiftsuspenders -DgroupId=org.swiftsuspenders -Dversion=2.0.0-b1 -Dpackaging=swc
mvn -s settings.xml install:install-file -Dfile=lib/as3commons-logging-2.7.swc -DartifactId=as3commons-logging -DgroupId=org.as3commons -Dversion=2.7 -Dpackaging=swc
mvn -s settings.xml install:install-file -Dfile=lib/flexunit-4.1.0-8-flex_4.1.0.16076.swc -DgroupId=com.adobe.flexunit -DartifactId=flexunit -Dversion=4.1.0-8 -Dpackaging=swc -Dclassifier=flex
mvn -s settings.xml install:install-file -Dfile=lib/hamcrest-as3-flex-1.1.3.swc -DgroupId=org.hamcrest -DartifactId=hamcrest-as3 -Dversion=1.1.3 -Dpackaging=swc -Dclassifier=flex
mvn -s settings.xml install:install-file -Dfile=lib/mockolate-0.12.1-flex.swc -Dversion=0.12.1 -Dclassifier=flex -Dpackaging=swc -DgroupId=mockolate -DartifactId=mockolate
214 changes: 214 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,214 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>org.robotlegs</groupId>
<artifactId>robotlegs-framework</artifactId>

<version>2.0.0-b1-SNAPSHOT</version>

<packaging>swc</packaging>

<name>Robotlegs Framework</name>
<description>
Robotlegs is a pure AS3 micro-architecture (framework) with a light footprint and limited scope. Simply put, Robotlegs is there to help you wire your objects together. It provides the glue that your application needs to easily function in a decoupled way. Through the use of automated metadata based dependency injection Robotlegs removes boilerplate code in an application. By promoting loose coupling and avoiding the use of Singletons and statics in the framework Robotlegs can help you write code that is highly testable.
</description>
<url>http://www.robotlegs.org</url>
<licenses>
<license>
<name>Robotlegs Custom License</name>
<url>http://github.com/robotlegs/robotlegs-framework/blob/master/LICENSE</url>
<distribution>repo</distribution>
</license>
</licenses>

<developers>
<developer>
<id>darscan</id>
<name>Shaun Smith</name>
<email></email>
<roles>
<role>Founder</role>
</roles>
</developer>
<developer>
<id>joelhooks</id>
<name>Joel Hooks</name>
<email>joelhooks@gmail.com</email>
<url>http://joelhooks.com/</url>
</developer>
<developer>
<id>stray</id>
<name>Stray</name>
<url>http://www.xxcoder.net/</url>
</developer>
</developers>
<contributors>
<contributor>
<name>Craig Wickesser</name>
<email>codecraig@gmail.com</email>
<url>http://digitalchickenscratch.com/</url>
<roles>
<role>Maven contributor</role>
</roles>
</contributor>
<contributor>
<name>Justin J. Moses</name>
<url>http://about.me/justinj</url>
<roles>
<role>Maven contributor</role>
</roles>
</contributor>
</contributors>

<scm>
<url>http://github.com/robotlegs/robotlegs-framework/tree/version2</url>
<connection>git://github.com/robotlegs/robotlegs-framework.git</connection>
</scm>

<properties>
<maven.version>3.0.3</maven.version>

<flexmojos.version>4.0-RC2</flexmojos.version>

<!-- The Flex SDK to compile against -->
<flex.sdk.version>4.5.1.21328</flex.sdk.version>
<swiftsuspenders.version>2.0.0-b1</swiftsuspenders.version>
<as3commons.version>2.7</as3commons.version>
<robotlegs1.version>1.5.2</robotlegs1.version>

<!-- Unit testing frameworks and dependencies -->
<flexunit.version>4.1.0-8</flexunit.version>
<hamcrest.version>1.1.3</hamcrest.version>
<mockolate.version>0.12.1</mockolate.version>
</properties>

<distributionManagement>
<repository>
<id>sonatype-staging</id>
<url>http://oss.sonatype.org/service/local/staging/deploy/maven2</url>
</repository>
<snapshotRepository>
<id>sonatype-nexus-snapshots</id>
<name>Sonatype Nexus Snapshots</name>
<url>http://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>

<build>
<sourceDirectory>src</sourceDirectory>
<testSourceDirectory>test</testSourceDirectory>
<resources>
<resource><directory>src</directory></resource>
</resources>

<plugins>
<plugin>
<groupId>org.sonatype.flexmojos</groupId>
<artifactId>flexmojos-maven-plugin</artifactId>
<version>${flexmojos.version}</version>
<extensions>true</extensions>
<configuration>
<keepAs3Metadatas>
<keepAs3Metadata>Inject</keepAs3Metadata>
<keepAs3Metadata>PostConstruct</keepAs3Metadata>
</keepAs3Metadatas>
<includeFiles>
<include>metadata.xml</include>
<include>manifest.xml</include>
<include>design.xml</include>
</includeFiles>
<dumpConfigAttach>true</dumpConfigAttach>
<verboseStacktraces>true</verboseStacktraces>
<compilerWarnings>
<warn-no-constructor>false</warn-no-constructor>
</compilerWarnings>
<includeTestFiles>
<includeTestFile>suites/EntireTestSuite.as</includeTestFile>
</includeTestFiles>
<includeSources>
<includeSource>${project.build.sourceDirectory}</includeSource>
</includeSources>
</configuration>
<dependencies>
<dependency>
<groupId>com.adobe.flex</groupId>
<artifactId>compiler</artifactId>
<version>${flex.sdk.version}</version>
<type>pom</type>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>

<dependencies>
<!-- Note: while this includes the entire flex framework for compilation, the default for SWCs is external linkage, so nothing from the Flex framework will be added to the final output. -->
<dependency>
<groupId>com.adobe.flex.framework</groupId>
<artifactId>flex-framework</artifactId>
<version>${flex.sdk.version}</version>
<type>pom</type>
</dependency>

<!--- Swift Suspenders. The used definitions will be merged in. -->
<dependency>
<groupId>org.swiftsuspenders</groupId>
<artifactId>swiftsuspenders</artifactId>
<version>${swiftsuspenders.version}</version>
<type>swc</type>
<scope>merged</scope>
</dependency>

<!-- AS3 Commons Logging. The used definitions will be merged in. -->
<dependency>
<groupId>org.as3commons</groupId>
<artifactId>as3commons-logging</artifactId>
<type>swc</type>
<version>${as3commons.version}</version>
<scope>merged</scope>
</dependency>

<!-- Robotlegs 1 dependency. The used definitions will be merged in. -->
<dependency>
<groupId>org.robotlegs</groupId>
<artifactId>robotlegs-framework</artifactId>
<version>${robotlegs1.version}</version>
<type>swc</type>
<scope>merged</scope>
</dependency>

<!-- ======================== -->
<!-- TEST Dependencies. (Only compiled in the unit test runner) -->
<dependency>
<groupId>com.adobe.flexunit</groupId>
<artifactId>flexunit</artifactId>
<version>${flexunit.version}</version>
<type>swc</type>
<classifier>flex</classifier>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-as3</artifactId>
<version>${hamcrest.version}</version>
<type>swc</type>
<classifier>flex</classifier>
<scope>test</scope>
</dependency>

<dependency>
<groupId>mockolate</groupId>
<artifactId>mockolate</artifactId>
<version>${mockolate.version}</version>
<type>swc</type>
<classifier>flex</classifier>
<scope>test</scope>
</dependency>
<!-- ======================== -->

</dependencies>
</project>
29 changes: 29 additions & 0 deletions settings.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">

<profiles>
<profile>
<id>flexgroup-on-sonatype</id>
<repositories>
<repository>
<id>Sonatype Flex Group</id>
<url>http://repository.sonatype.org/content/groups/flexgroup/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>Sonatype Flex Group</id>
<url>http://repository.sonatype.org/content/groups/flexgroup/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>

<!-- NOTE: this will deactivate any "activeByDefault" profiles in the project POM -->
<activeProfiles>
<activeProfile>flexgroup-on-sonatype</activeProfile>
</activeProfiles>
</settings>

0 comments on commit 648eb9f

Please sign in to comment.