1. 1 Rake as build management tool for developers and project managers Denis Lutz
2. Rake for Developers The Hyphothesis about Ant “Hello World” from Rake Ant Hypothesis proove 1 Rake for Project Managers Ant Hypothesis proove 2 Case Study “The Perfect Build” Riskmanagement 3 Improvements you can make with rake 2
12. 7 What is rake? Calling a core ant task… rake is a plain mapping to the ant java classes ! We can call any task or target that ant has!
13. 8 What is rake? Create a task that is dependent on the unzip task It should create a folder and move the unzipped file into it
14. 9 Ant is not sufficient for what we want to do Back to Hypothesis… Ant is not sufficient for what we want to do. Not anymore since we have better choices. It was created as no scripting languages were supporting java. What are we usually doing with Ant?
24. 11 Ant is not sufficient for what we want to do moving / copying / deleting files and directories Ant: Looks pretty simple right? Just couple lines, markup was always easy… Rake: I want to do operations as would it be in a unix environment, and rake realizes it:
25. 12 Ant is not sufficient for what we want to do processing a data set (Array) in a loop Ant: See, for anything that a normal language has, ant has a markup version of it Ant: So you will be always fine and be able to write what you want Rake: Well lets just take a scripting language then… like ruby Rake: and by the way, can you use unique ant syntax somewhere else ouside the build scripts?
26. 13 Ant is not sufficient for what we want to do Ant: Yea, conditions are definded on the tasks themselves, since its all about tasks.
27. 14 Ant is not sufficient for what we want to do Rake: that’s all we wanted:
28. 15 Ant is not sufficient for what we want to do Rake: How about some methods to don’t repeat yourself in the build? Ant: Methods??? Your kidding me right? Targets are your methods, or create a macrodef Ant: If it gets too complicated soo create your java class and call it from ant… Ant: Here is the macrodef syntax Rake: Dude, I just want a method ok? So attribute is clear … that’s what I need Whats the deal with the <element /> ? What is the <sequential/> suppose to mean? So I predefine what tasks I will call inside my new macro ? Should I always use sequential ?
29. 16 Ant is not sufficient for what we want to do Rake: Watch, that’s what I want..
30. 17 Ant is not sufficient for what we want to do Rake: I want to create some objects in my script… Ant: Objects??? Lets not exagerrate here ok? Ant: If its that complicated just create a custom ant task with a java class Rake: Yea, its like object orientation = elegance , so we should use it directly in the script…
31. 18 Ant is not sufficient for what we want to do Ant: LOL, it should not be that complicated Ant: unless you really want to fly to the moon… Rake: Well lets say I have a deployment script and I deal with servers… Rake: This is what I could do with object orientation, all this in one file, within mins
53. java scripting languages = languages that are running on jvm
54.
55. 25 Ant is not sufficient for what we want to do Rails competes with JSF in the meanwhile, which indirectly shows the power and acceptance of the ruby language on the us market.
56. 26 Improvements we could reach by using rake Which parts of your java project can be improved by using rake? 1. Setting up the project initially and for any new team member 2. Working with the project everyday 3. Deployment management
57.
58. knowledge is mostly party written on the wiki and outdated
59. no one really knows what the project setup steps are
60. the older the project the more out of sync is it
61. the project setup takes usually the time of the new person and one team memberAt the end you loose a lot of time, instead of initially investing little bit more!
62. 28 Improvements we could reach by using rake What the a new member feels at the project setup: What database do I need? What are the database properties? Where should I configure them? Who should I ask about it? Where is the wiki page about this project? I have a windows machine, are there any differences to a macs? What should I write into my “hosts” file? How do I start this special backend / front end / solr server?
63.
64. Local database setup (setting up mysql/oracle + create database)
65. Unzipping of vendor files (commercial integrated systems, solr, patches)