1 / 34

ANT on the Wire

ANT on the Wire. Using FTP, Mail, SVN, and VSS tasks (and a bonus task). Your host… Marc Esher. CF since 2000 Java since 2001 Contributor to MXUnit unit testing framework for CF NOT an ANT guru Plug alert: come see us talk about MXUnit and unit testing at Webmaniacs in May!.

majed
Download Presentation

ANT on the Wire

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ANT on the Wire Using FTP, Mail, SVN, and VSS tasks (and a bonus task)

  2. Your host… Marc Esher • CF since 2000 • Java since 2001 • Contributor to MXUnit unit testing framework for CF • NOT an ANT guru • Plug alert: come see us talk about MXUnit and unit testing at Webmaniacs in May!

  3. What this is not • A high-level ANT overview • A cursory look at a bunch of neat features • A crash course in basic ANT • The last word on any of these topics

  4. What this is • A “how-to” session; as such, it will be slightly slower-paced than most meetups • A solid look at a few really useful features

  5. Takeaways • Know where to go to download all dependencies for these ANT tasks • Know how to install all dependencies and configure ANT to run these tasks • Run these tasks from Eclipse or command line • Learn by example how to use these tasks for common operations • Learn how to read the ANT documentation for more info on these tasks • Not be afraid to try any of this on your own • Familiar enough with these tasks that a more complicated build file is not overwhelming

  6. Tasks we’ll cover • Email • FTP • SVN (for accessing subversion repository) • VSS (demo how to configure and what the task looks like) • Version numbering using propertyfile

  7. Beginning with the End Putting all these tasks together to: • Check out version.properties file, increment version, use version for zip file name, check it back in • Package app into zip (not covered in pres.) • Run unit tests and email results • Upload zip file to google code (not covered in pres.) • FTP version.properties file to website • Re-init application so it reads that file • FTP test results to website

  8. Demo Build File

  9. Let’s go: The ANT manual • http://ant.apache.org/manual/index.html • 3 key sections: • Concepts and Types – explains all about directory concepts (**/ vs */, filesets, etc) and tons of other stuff • Core tasks – all the built-in tasks you can usually use out of the box (with some exceptions) • Optional tasks – stuff you probably have but also are more likely to require downloading additional dependencies • NOTE: tasks requiring dependencies let you know they require dependencies

  10. Our dependencies • FTP needs: commons-oro and commons-net • http://commons.apache.org/downloads/download_net.cgi • http://jakarta.apache.org/site/downloads/downloads_oro.cgi • Mail needs: javamail and activation framework • http://java.sun.com/products/javamail/downloads/index.html • http://java.sun.com/products/javabeans/jaf/downloads/index.html • SVN needs: svnant task • JavaHL: easiest to install Subclipse plugin through Eclipse update site (even if you disable the plugin as soon as you install it!) • http://subclipse.tigris.org/update_1.0.x (we’ll use this in eclipse) • http://subclipse.tigris.org/svnant.html • VSS needs • No jars, but you do need vss client installed on your machine • Eclipse users: Once these are added to your file system, you need to tell ANT about them in Eclipse

  11. Setting up ANT • Assumes you have Eclipse installed • If not, you can download ANT separately and do all of this stuff without Eclipse • Good idea to know how to use ANT outside of eclipse – makes automation easier • For this demonstration, I’ll be using ANT 1.7 that is bundled with Eclipse 3.3

  12. Cont. • Find ANT bin directory. For Eclipse, this is in %eclipse_root%\plugins\org.apache.ant_1.7….\bin • Add ANT bin directory to system environment “path” variable • Run ant –version to get some basic information

  13. Demo ANT at command line

  14. Cont. • If you get a “cannot find tools.jar” message, it means ANT’s using the JRE and NOT the JDK. • Only important if you need a compiler (or get annoyed by the tools.jar message) • Install the JDK (if you don’t have it) http://java.sun.com/javase/downloads/index.jsp • Find your JDK’s bin path. Copy and replace the existing java bin directory with the new bin directory in your environment PATH variable

  15. Demo adding JDK

  16. Our build file • Simple build file with test targets • init • testEmail • testFTP • testSVN • testVSS • testVersion • HINT: even for the final build file in your projects, keep these test targets… they’re great for confirming that new folks working on the project are correctly configured

  17. testEmail (core task) • Run and confirm it fails • Add dependencies to ANT lib dir • http://java.sun.com/products/javamail/downloads/index.html • http://java.sun.com/products/javabeans/jaf/downloads/index.html • Run and confirm it fails… no properties set up • (switch to real properties file) • Run in Eclipse • Run at command line

  18. Demo testEmail

  19. Another Email example • MXUnit build file • runTests

  20. Learn more about mail task • http://ant.apache.org/manual/index.html • Ant tasks – Core Tasks – Mail • You can do all the normal mail stuff • You can attach files to messages • Cool tip: use the messagefile attribute for easier-to-manage html emails

  21. testFTP (optional task) • Run and confirm it fails • Add dependencies to ANT lib dir • http://commons.apache.org/downloads/download_net.cgi • http://jakarta.apache.org/site/downloads/downloads_oro.cgi • Run and confirm it fails (no properties) • Switch to real properties file • Run in Eclipse • Run at command line

  22. Demo testFTP

  23. A few more FTP examples • MXUnit build file • updatewebsite • publishTestResults

  24. Learn more about FTP task • http://ant.apache.org/manual/index.html • Ant tasks – Optional Tasks – FTP • You can use this to synchronize using the various “time…” attributes • You can control the target directory for put operations

  25. testSVN (the trickiest) • Run and confirm it fails • Install plugin using Update Site • http://subclipse.tigris.org/update_1.0.x • Add dependencies to ANT lib dir • Get at http://subclipse.tigris.org/svnant.html • In Eclipse plugins directory, navigate to the org.tigris.subversion.javahl.win32 directory. Copy that path. • Paste that path into your system’s PATH environment variable • RESTART YOUR COMPUTER

  26. testSVN, cont. • Run and confirm it fails • Add taskdef • Run in eclipse • Run in command line

  27. Demo testSVN

  28. Another SVN example • MXUnit build file • incrementVersion • tagVersion

  29. testVSS (optional tasks… I’ll be showing vssget) • Run and confirm it fails • Add vss path to environment PATH variable • e.g. C:\Program Files\Microsoft Visual Studio\VSS\win32 • Run and imagine it succeeded

  30. Demo testVSS • Also show the entries from GetLatest.xml

  31. Learn more about VSS tasks • http://ant.apache.org/manual/index.html • Ant tasks – Optional Tasks – Microsoft Visual SourceSafe Tasks • This is a suite of tests… vssget, vsslabel, vsscheckin, vsscheckout, etc • For vssget, I advise using failonerror=“false”, writablefiles=“skip”, filetimestamp=“updated” • Vsslabel is similar to tagging in SVN

  32. Bonus: propertyfile for versioning • propertyfile task writes/updates a properties file • You can perform increments on properties • You then read those properties using the property task with the file attribute • Perfect for versioning

  33. Demo testVersion • Eclipse • Command line • See version number increase • Note we didn’t manually create the file • Add constructs like “rc” notations

  34. Q & A

More Related