SlideShare a Scribd company logo
1 of 35
Download to read offline
Deploy
Flex with
Apache Ant
Swiss Flash User Group (sfug)

Zürich | 20. Januar 2009
Hello my name is
Andreas Lorenz

dctrl - interactive media gmbh
1
Ant Overview
The basics
Without Ant
With Ant
What is Ant?
1.   An XML based custom build tool
2.   Open source & well documented
3.   Standardized & widely used
4.   Implemented in Java
5.   Platform independent
Ant Goals
Create a continuous integration based
build process:

 • Centralized
 • Automated
 • Self-Testing
Usage
1. Don‘t do work you‘ve already done
2. Do alot of tasks once
3. Prevent Mistakes
What Ant can do
1.   Build swf
2.   Do UnitTest‘s
3.   Generate ASDoc‘s & SWC Files
4.   Build template files
5.   Combine Flex projects, modules, assets
6.   Copy, zip, ftp, svn
7.   Source distribution
2
Ant Basics
Creating Issues
Installing Ant
1. http://ant.apache.org
2. Bundled with IDE‘s like Eclipse
Directory structure
/ project
     / ant
     / build
     / dist
     / html-template
     / src
3
Ant Structure
Creating Issues
Files
1. Build file «build.xml»
2. Main property file «build.properties»
3. Local property file «build.mac.properties»
build.properties
1.   Separate data from the process
2.   Configuration file
3.   Re-usability
4.   Not under SVN
build.properties
Referenced by ${var}

# default pathes
main.path = dctrl/project
src.path     = ${ main.path}/ src
build.xml
1.   One «build.xml» file per project
2.   Each build use targets
3.   Each target use tasks
4.   Each task has properties
build.xml structure
Example:

<project name=quot;examplequot; default=quot;helloquot; basedir=quot;.quot;>
  <property name=quot;string.varquot; value=quot;Hello Worldquot;/>
  <target name=quot;helloquot;>
      <echo message=quot;${string.var}quot; />
  </target>
</project>
Build output
<project>
Root element

4 attributes:
  1. name          -   projectname (optional)
  2. basedir       -   reference (optional)
  3. default       -   target (required)
  4. description   -   info (optional)
<project>
Example:

<project name=”hello” default=”main” basedir=”.”
    description=“standard build“>
<property>
1.   User defined variables
2.   Case sensitive
3.   Defined in build.xml or build.properties
4.   Reference by ${var}
5.   System properties ${os.name}
6.   Built-in properties ${ant.java.version}
<property>
Example:

<property file=quot;build.propertiesquot; />
<property name=quot;compile.debugquot; value=quot;truequot;/>

<echo>The main path is ${ main.path }</echo>
<echo>The debug state is ${ compile.debug }</echo>
<target>
1.   A <project> has one or more <target>
2.   Wrapper for a sequences of actions (tasks)
3.   Can depend on other <target>
4.   Executes only once
<target>
5 attributes:
  1. name          -   target reference
  2. depends       -   other targets (optional)
  3. if            -   conditional (optional)
  4. unless        -   converse of if (optional)
  5. description   -   info (optional)
<target>
Example:
<target name=quot;jarquot; depends=quot;compilequot;
    description=quot;create a Jar file for the applicationquot;>

<target name=quot;jarquot; if=quot;gui_readyquot;>

<target name=quot;jarquot; unless=quot;gui_readyquot;>
<task>
1.   Ant built-in Java commands (tasks)
2.   Additional tasks like flexTasks (JAR files)
3.   Custom Java commands
4.   Independent executed code
5.   Wrapped in a <target>
6.   Can have multiple attributes
<task>
Example:

<target name=quot;compilequot; depends=quot;initquot;>
    <!- - Compile the java code - ->
    <javac srcdir=quot;${src}quot; destdir=quot;${build}quot;/>
</target>
<task>
Ant built-in tasks:

Ant         Exec      GZip       Replace   Unzip
AntCall     ExecOn    Jar        Style     Zip
Available   Fail      Mail       Tar
Copy        Filter    Mkdir      Taskdef
Delete      Get       Move       Touch
Echo        GUnzip    Property   Tstamp
<task>
Optional tasks (must install JAR files):

FTP
SVN
Mail
FlexTasks
Events
Ant generates events as it executes:

1.   Build started/finished
2.   Target Build started/finished
3.   Task Build started/finished
4.   Message logged
4
A Typical Project
Examples
5
Some more infos
before you start your own
Resources
Homepage:                http://ant.apache.org
User Manual:             http://jakarta.apache.org/ant/manual/index.html
Wiki:                    http://wiki.apache.org/ant/FrontPage
FAQ:                     http://ant.apache.org/faq.html
Books:                   http://sourceforge.net/projects/antbook
Apache Ant Resources:    http://jakarta.apache.org/ant/resources.html
Apache Ant 1.5 Manual:   http://jakarta.apache.org/ant/manual/index.html
Flex Ant Tasks:          http://labs.adobe.com/wiki/index.php/Flex_Ant_Tasks
Thanks!
al@dctrl.ch , www.dctrl.ch


www.slideshare.net/dctrl/deploy-flex-with-apache-ant-presentation

More Related Content

What's hot

Django and Mongoengine
Django and MongoengineDjango and Mongoengine
Django and Mongoengine
austinpublic
 

What's hot (20)

Django for Beginners
Django for BeginnersDjango for Beginners
Django for Beginners
 
Patternlab: Atomic Design & Living Styleguides (Refresh Hilo)
Patternlab: Atomic Design & Living Styleguides (Refresh Hilo)Patternlab: Atomic Design & Living Styleguides (Refresh Hilo)
Patternlab: Atomic Design & Living Styleguides (Refresh Hilo)
 
Django Introduction & Tutorial
Django Introduction & TutorialDjango Introduction & Tutorial
Django Introduction & Tutorial
 
Django by rj
Django by rjDjango by rj
Django by rj
 
Django Best Practices
Django Best PracticesDjango Best Practices
Django Best Practices
 
Watir Presentation Sumanth Krishna. A
Watir Presentation   Sumanth Krishna. AWatir Presentation   Sumanth Krishna. A
Watir Presentation Sumanth Krishna. A
 
API Design & Security in django
API Design & Security in djangoAPI Design & Security in django
API Design & Security in django
 
Free django
Free djangoFree django
Free django
 
Making your API easy to document with Spring REST Docs
Making your API easy to document with Spring REST DocsMaking your API easy to document with Spring REST Docs
Making your API easy to document with Spring REST Docs
 
Django Framework Overview forNon-Python Developers
Django Framework Overview forNon-Python DevelopersDjango Framework Overview forNon-Python Developers
Django Framework Overview forNon-Python Developers
 
Building RESTful APIs
Building RESTful APIsBuilding RESTful APIs
Building RESTful APIs
 
Django - Python MVC Framework
Django - Python MVC FrameworkDjango - Python MVC Framework
Django - Python MVC Framework
 
Django
DjangoDjango
Django
 
Introduction to Apache Ant
Introduction to Apache AntIntroduction to Apache Ant
Introduction to Apache Ant
 
Test-Driven JavaScript Development (JavaZone 2010)
Test-Driven JavaScript Development (JavaZone 2010)Test-Driven JavaScript Development (JavaZone 2010)
Test-Driven JavaScript Development (JavaZone 2010)
 
Django and Mongoengine
Django and MongoengineDjango and Mongoengine
Django and Mongoengine
 
HTTP demystified for web developers
HTTP demystified for web developersHTTP demystified for web developers
HTTP demystified for web developers
 
Keyword Driven Framework using WATIR
Keyword Driven Framework using WATIRKeyword Driven Framework using WATIR
Keyword Driven Framework using WATIR
 
Django rest framework tips and tricks
Django rest framework   tips and tricksDjango rest framework   tips and tricks
Django rest framework tips and tricks
 
Realtime Apps with Django
Realtime Apps with DjangoRealtime Apps with Django
Realtime Apps with Django
 

Viewers also liked

Enabling Access to All - USID 2009 Paper Presentation on Accessibility
Enabling Access to All - USID 2009 Paper Presentation on AccessibilityEnabling Access to All - USID 2009 Paper Presentation on Accessibility
Enabling Access to All - USID 2009 Paper Presentation on Accessibility
Sharvari Adesh
 
Gestin de cont.
Gestin de cont.Gestin de cont.
Gestin de cont.
abestrada
 
Recursos Energéticos
Recursos EnergéticosRecursos Energéticos
Recursos Energéticos
grupoc1
 

Viewers also liked (14)

Sin título 1
Sin título 1Sin título 1
Sin título 1
 
pop star
pop starpop star
pop star
 
Enabling Access to All - USID 2009 Paper Presentation on Accessibility
Enabling Access to All - USID 2009 Paper Presentation on AccessibilityEnabling Access to All - USID 2009 Paper Presentation on Accessibility
Enabling Access to All - USID 2009 Paper Presentation on Accessibility
 
Red alumnos
Red alumnosRed alumnos
Red alumnos
 
Mining Branch-Time Scenarios From Execution Logs
Mining Branch-Time Scenarios From Execution LogsMining Branch-Time Scenarios From Execution Logs
Mining Branch-Time Scenarios From Execution Logs
 
Wordpress
WordpressWordpress
Wordpress
 
Delicius
DeliciusDelicius
Delicius
 
Gestin de cont.
Gestin de cont.Gestin de cont.
Gestin de cont.
 
Reflexive exercises to get over impasse
Reflexive exercises to get over impasseReflexive exercises to get over impasse
Reflexive exercises to get over impasse
 
Rituals in psychotherapy
Rituals in psychotherapyRituals in psychotherapy
Rituals in psychotherapy
 
DR. Dimitri Kioses talks abour Sistemica
DR. Dimitri Kioses talks abour SistemicaDR. Dimitri Kioses talks abour Sistemica
DR. Dimitri Kioses talks abour Sistemica
 
Recursos Energéticos
Recursos EnergéticosRecursos Energéticos
Recursos Energéticos
 
Introduction to Knowledge Management
Introduction to Knowledge ManagementIntroduction to Knowledge Management
Introduction to Knowledge Management
 
Hr Analytics
Hr AnalyticsHr Analytics
Hr Analytics
 

Similar to Deploy Flex with Apache Ant

Ant - Another Neat Tool
Ant - Another Neat ToolAnt - Another Neat Tool
Ant - Another Neat Tool
Kanika2885
 
Maven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patternsMaven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patterns
elliando dias
 
Slides Aquarium Paris 2008
Slides Aquarium Paris 2008Slides Aquarium Paris 2008
Slides Aquarium Paris 2008
julien.ponge
 

Similar to Deploy Flex with Apache Ant (20)

Apache ant
Apache antApache ant
Apache ant
 
Ant - Another Neat Tool
Ant - Another Neat ToolAnt - Another Neat Tool
Ant - Another Neat Tool
 
Demystifying Maven
Demystifying MavenDemystifying Maven
Demystifying Maven
 
Ant User Guide
Ant User GuideAnt User Guide
Ant User Guide
 
Ant
Ant Ant
Ant
 
Ext 0523
Ext 0523Ext 0523
Ext 0523
 
Introduction To Ant1
Introduction To  Ant1Introduction To  Ant1
Introduction To Ant1
 
Introduction To Ant
Introduction To AntIntroduction To Ant
Introduction To Ant
 
Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)
 
Maven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patternsMaven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patterns
 
Ant Build Tool
Ant Build ToolAnt Build Tool
Ant Build Tool
 
introduction to galaxy
introduction to galaxyintroduction to galaxy
introduction to galaxy
 
High Performance JavaScript 2011
High Performance JavaScript 2011High Performance JavaScript 2011
High Performance JavaScript 2011
 
Selenium RC Automation testing
Selenium RC Automation testingSelenium RC Automation testing
Selenium RC Automation testing
 
Introduction To JSFL
Introduction To JSFLIntroduction To JSFL
Introduction To JSFL
 
Modern JavaScript Programming
Modern JavaScript Programming Modern JavaScript Programming
Modern JavaScript Programming
 
Java ant tutorial
Java ant tutorialJava ant tutorial
Java ant tutorial
 
Ant tutorial
Ant tutorialAnt tutorial
Ant tutorial
 
Slides Aquarium Paris 2008
Slides Aquarium Paris 2008Slides Aquarium Paris 2008
Slides Aquarium Paris 2008
 
Jsf2 composite-components
Jsf2 composite-componentsJsf2 composite-components
Jsf2 composite-components
 

More from dctrl — studio for creativ technology

More from dctrl — studio for creativ technology (6)

Erfolgreiches E-Mail Marketing
Erfolgreiches E-Mail MarketingErfolgreiches E-Mail Marketing
Erfolgreiches E-Mail Marketing
 
dctrl Agency Profile
dctrl Agency Profiledctrl Agency Profile
dctrl Agency Profile
 
Powered by WordPress (German)
Powered by WordPress (German)Powered by WordPress (German)
Powered by WordPress (German)
 
Adobe AIR with Merapi Java and RoomWare Bluetooth
Adobe AIR with Merapi Java and RoomWare BluetoothAdobe AIR with Merapi Java and RoomWare Bluetooth
Adobe AIR with Merapi Java and RoomWare Bluetooth
 
Flash desktop application development with Screenweaver 3.1
Flash desktop application development with Screenweaver 3.1Flash desktop application development with Screenweaver 3.1
Flash desktop application development with Screenweaver 3.1
 
Flash Messenger for MusicStar Switzerland
Flash Messenger for MusicStar SwitzerlandFlash Messenger for MusicStar Switzerland
Flash Messenger for MusicStar Switzerland
 

Recently uploaded

Recently uploaded (20)

Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

Deploy Flex with Apache Ant