SlideShare a Scribd company logo
MAV
EN
the Wonderful World of Maven and Flexmojos
1. definition
More than just a build tool -
Maven is project management.
It’s built in Java and lives under the Apache umbrella,
              (∴ still new to Flex developers)
it promotes convention over configuration
and, it is hierarchical.
Everything builds via a Project Object Model
         (POM): aka the blueprint.
A build generates one or more artifacts.
   (Typically one artifact per POM)
Artifacts are classified by groupId,
artifactId, packaging (type) and version.
Versions stamped with SNAPSHOT are
            treated as such.
Eg. the Flex framework dependency
              groupId:   com.adobe.flex.framework
           artifactId:   flex-framework
              version:   4.5.1.21328
            packaging:   pom



    Artifacts are filed away in repositories using:
/[groupId]/[artifactId]/[version]/[artifactId]-[version].[ext]
2. building
A goal is a single action.
A phase is a collection of goals. [M:M]
A lifecycle is a sequence of phases (upto & including).
The odd couple: clean & install.
        > mvn clean install
The packaging (eg. SWF, SWC, JAR) typically
     defines the goals within each phase.
In general, the default lifecycle involves the
              following phases:

■ validate
■ compile
■ test
■ package
■ integration-test
■ verify
■ install
■ deploy
In addition, plugins provide goals and can bind
                them to phases.
    eg. > mvn compiler:compile compiler:testCompile
Plugins include compiler, install, scm, release,
       javadoc, eclipse, flexmojos, etc.
3. dependencies
Dependencies are hosted in repositories.
Each install of Maven has a repository.
   (~/.m2 is your new best friend).
In order to add new dependencies to your
       repository, you can simply
     > mvn install:install-file
You add references to repositories either in
  your POM or in your settings.xml file.
When building, if a dependency is missing,
 Maven will try to download it from an
         upstream repository.
As a last resort, it will check Maven Central
             (search.maven.org).
How are dependencies shared across
           repositories?

             Nexus.
Nexus allows an organisation to share artifacts
       both internally and externally.
It has out-of-the-box support for both
 snapshot and release repositories.
So, what about dependencies on teh internez?
Nexus will proxy to other external Nexus
              repositories.
If the dependency isn’t hosted - there’s a 3rd
     Party repo that you can upload into.
4. the flexmojos plugin
Out of the box, Flexmojos supports:

  ★   Flex 3/4, AIR and AS3 projects
  ★   Unit tests & code coverage reports
  ★   ASDoc generation
  ★   RSL and runtime module support
  ★   Goal to create IDE project
  ★   SWF optimization
  ★   Archetypes to get started
  ★   WAR bundling & deployment
Goals bound to the default
 SWF and SWC lifecycles
function preinit()
{


   download(maven, ‘3.0.3’).install().append(system.path);


   download(flashplayer-standalone,
‘10.3’).install().append(system.path);

	   flashbuilder.plugins.add(m2eclipse);

}




        First you have to setup your environment.
#1.
        Use a Flexmojos archetype to get started.

mvn archetype:generate
-DarchetypeRepository=http://repository.sonatype.com/content/groups/flexgroup
-DarchetypeGroupId=org.sonatype.flexmojos
-DarchetypeArtifactId=flexmojos-archetypes-application
-DarchetypeVersion=4.0-RC2
#2.
   Add repo location of Flex SDK.
http://repository.sonatype.org/content/groups/flexgroup
#3.
   Build.
mvn clean install
#4.
Import Maven project into Flashbuilder
#5.
Check project settings - source folders, compiler and
                       config.
#6.
Setup Maven build and debug as required.
Tip: Only check in /src and your POM -
  everything else can be generated.
5. fin
Don’t skim the conventions.
Learn the basics and save yourself hours of
           endless frustration.
Links and more info:

★   ADC series on Flex & Maven
★   Flexmojos 4.0-RC2 plugin docs
★   My Examples on Github
★   Flexmojos Google Group
★   Flexmojos on Github
★   Maven guide with Flexmojos
★   Follow @flexmojos on Twitter


        about.me/justinj

More Related Content

PPTX
Build Tools & Maven
PPTX
Build tools introduction
PPTX
Contributing to core
PPTX
Real World Enterprise Reactive Programming using Vert.x
PPTX
Composer
PPTX
Apache Maven
PPTX
TYPO3 & Composer
PDF
Environment Setup for Programming Languages
Build Tools & Maven
Build tools introduction
Contributing to core
Real World Enterprise Reactive Programming using Vert.x
Composer
Apache Maven
TYPO3 & Composer
Environment Setup for Programming Languages

What's hot (20)

PDF
OpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
PPTX
Composer namespacing
PPTX
Travis CI - PHP
PPTX
Apache Maven
ODP
Maven from Scratch to Production (.odp)
PPTX
Apache Maven for SoftServe IT Academy
PPTX
Apache Maven
PPTX
Container BoM Inspection with TERN
PDF
Dockerized tests with dockerized jenkins
PPT
OSGi Enablement For Apache Tuscany
PDF
Streamlining Agile Linux Development with Docker and RHEL Atomic
PDF
How to write a Dockerfile
PPTX
Ordina Accelerator program 2019 - Quality assurance
PDF
Intro 2 docker
PDF
Automated Deployment with Maven - going the whole nine yards
PDF
Introduction to Apache Maven
PDF
Docker 導入:障礙與對策
PPTX
Version Management in Maven
PPTX
Ordina Accelerator program 2019 - Maven
OpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
Composer namespacing
Travis CI - PHP
Apache Maven
Maven from Scratch to Production (.odp)
Apache Maven for SoftServe IT Academy
Apache Maven
Container BoM Inspection with TERN
Dockerized tests with dockerized jenkins
OSGi Enablement For Apache Tuscany
Streamlining Agile Linux Development with Docker and RHEL Atomic
How to write a Dockerfile
Ordina Accelerator program 2019 - Quality assurance
Intro 2 docker
Automated Deployment with Maven - going the whole nine yards
Introduction to Apache Maven
Docker 導入:障礙與對策
Version Management in Maven
Ordina Accelerator program 2019 - Maven
Ad

Similar to Wonderful World of Maven (20)

KEY
An Introduction to Maven and Flex
PDF
Introduction to maven, its configuration, lifecycle and relationship to JS world
PDF
Apache maven, a software project management tool
PDF
Build server
PPT
Maven with Flex
PPT
Maven with Flex
PPTX
Introduction to Maven
PPTX
PPTX
Jenkins advance topic
ODP
Jbossworld Presentation
PDF
Intelligent Projects with Maven - DevFest Istanbul
PDF
A-Z_Maven.pdf
PPT
Maven 2 features
PDF
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
PPTX
(Re)-Introduction to Maven
PPTX
Maven Basics - Explained
PDF
Exploring Maven SVN GIT
PDF
Mavennotes.pdf
PPT
Maven Introduction
An Introduction to Maven and Flex
Introduction to maven, its configuration, lifecycle and relationship to JS world
Apache maven, a software project management tool
Build server
Maven with Flex
Maven with Flex
Introduction to Maven
Jenkins advance topic
Jbossworld Presentation
Intelligent Projects with Maven - DevFest Istanbul
A-Z_Maven.pdf
Maven 2 features
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
(Re)-Introduction to Maven
Maven Basics - Explained
Exploring Maven SVN GIT
Mavennotes.pdf
Maven Introduction
Ad

Recently uploaded (20)

PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
cuic standard and advanced reporting.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
A Presentation on Artificial Intelligence
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
MYSQL Presentation for SQL database connectivity
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
cuic standard and advanced reporting.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Understanding_Digital_Forensics_Presentation.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
A Presentation on Artificial Intelligence
Encapsulation_ Review paper, used for researhc scholars
NewMind AI Monthly Chronicles - July 2025
Unlocking AI with Model Context Protocol (MCP)
NewMind AI Weekly Chronicles - August'25 Week I
CIFDAQ's Market Insight: SEC Turns Pro Crypto
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf

Wonderful World of Maven

  • 1. MAV EN the Wonderful World of Maven and Flexmojos
  • 3. More than just a build tool - Maven is project management.
  • 4. It’s built in Java and lives under the Apache umbrella, (∴ still new to Flex developers)
  • 5. it promotes convention over configuration
  • 6. and, it is hierarchical.
  • 7. Everything builds via a Project Object Model (POM): aka the blueprint.
  • 8. A build generates one or more artifacts. (Typically one artifact per POM)
  • 9. Artifacts are classified by groupId, artifactId, packaging (type) and version.
  • 10. Versions stamped with SNAPSHOT are treated as such.
  • 11. Eg. the Flex framework dependency groupId: com.adobe.flex.framework artifactId: flex-framework version: 4.5.1.21328 packaging: pom Artifacts are filed away in repositories using: /[groupId]/[artifactId]/[version]/[artifactId]-[version].[ext]
  • 13. A goal is a single action.
  • 14. A phase is a collection of goals. [M:M]
  • 15. A lifecycle is a sequence of phases (upto & including).
  • 16. The odd couple: clean & install. > mvn clean install
  • 17. The packaging (eg. SWF, SWC, JAR) typically defines the goals within each phase.
  • 18. In general, the default lifecycle involves the following phases: ■ validate ■ compile ■ test ■ package ■ integration-test ■ verify ■ install ■ deploy
  • 19. In addition, plugins provide goals and can bind them to phases. eg. > mvn compiler:compile compiler:testCompile
  • 20. Plugins include compiler, install, scm, release, javadoc, eclipse, flexmojos, etc.
  • 22. Dependencies are hosted in repositories.
  • 23. Each install of Maven has a repository. (~/.m2 is your new best friend).
  • 24. In order to add new dependencies to your repository, you can simply > mvn install:install-file
  • 25. You add references to repositories either in your POM or in your settings.xml file.
  • 26. When building, if a dependency is missing, Maven will try to download it from an upstream repository.
  • 27. As a last resort, it will check Maven Central (search.maven.org).
  • 28. How are dependencies shared across repositories? Nexus.
  • 29. Nexus allows an organisation to share artifacts both internally and externally.
  • 30. It has out-of-the-box support for both snapshot and release repositories.
  • 31. So, what about dependencies on teh internez?
  • 32. Nexus will proxy to other external Nexus repositories.
  • 33. If the dependency isn’t hosted - there’s a 3rd Party repo that you can upload into.
  • 35. Out of the box, Flexmojos supports: ★ Flex 3/4, AIR and AS3 projects ★ Unit tests & code coverage reports ★ ASDoc generation ★ RSL and runtime module support ★ Goal to create IDE project ★ SWF optimization ★ Archetypes to get started ★ WAR bundling & deployment
  • 36. Goals bound to the default SWF and SWC lifecycles
  • 37. function preinit() { download(maven, ‘3.0.3’).install().append(system.path); download(flashplayer-standalone, ‘10.3’).install().append(system.path); flashbuilder.plugins.add(m2eclipse); } First you have to setup your environment.
  • 38. #1. Use a Flexmojos archetype to get started. mvn archetype:generate -DarchetypeRepository=http://repository.sonatype.com/content/groups/flexgroup -DarchetypeGroupId=org.sonatype.flexmojos -DarchetypeArtifactId=flexmojos-archetypes-application -DarchetypeVersion=4.0-RC2
  • 39. #2. Add repo location of Flex SDK. http://repository.sonatype.org/content/groups/flexgroup
  • 40. #3. Build. mvn clean install
  • 41. #4. Import Maven project into Flashbuilder
  • 42. #5. Check project settings - source folders, compiler and config.
  • 43. #6. Setup Maven build and debug as required.
  • 44. Tip: Only check in /src and your POM - everything else can be generated.
  • 46. Don’t skim the conventions. Learn the basics and save yourself hours of endless frustration.
  • 47. Links and more info: ★ ADC series on Flex & Maven ★ Flexmojos 4.0-RC2 plugin docs ★ My Examples on Github ★ Flexmojos Google Group ★ Flexmojos on Github ★ Maven guide with Flexmojos ★ Follow @flexmojos on Twitter about.me/justinj

Editor's Notes