| {namespace buck.development} | 
 |  | 
 | /***/ | 
 | {template .soyweb} | 
 |   {call buck.page} | 
 |     {param title: 'Development Workflow' /} | 
 |     {param content} | 
 | As explained in <a href="{ROOT}setup/install.html">Downloading and Installing | 
 | Buck</a>, you can build Buck by running <code>ant</code> in the directory | 
 | where you checked out Buck from GitHub. If you modify Buck's source code, | 
 | running <code>ant</code> again should be sufficient to rebuild it. | 
 | If you are concerned that Buck may have gotten in some sort of bad state, | 
 | run <code>ant clean && ant</code> to do a clean build. | 
 | <p> | 
 | In practice, this is not a particularly fast development cycle. Fortunately, | 
 | we have found development to be quite fast when developing Buck using Eclipse. | 
 | Buck contains the Eclipse project configuration files | 
 | {sp}<code>.classpath</code> and <code>.project</code> so that Buck can be | 
 | imported directly into Eclipse as a Java project. | 
 | The project is configured such that when you save your code, | 
 | Eclipse automatically overwrites the <code>.class</code> files where Buck | 
 | expects them (assuming you have <strong>Build Automatically</strong> enabled in | 
 | Eclipse). | 
 | <p> | 
 | This means that immediately after you save your code in Eclipse, you can | 
 | switch to the command-line to run <code>buck</code> and you will automatically | 
 | run Buck with your most recent edits. If your Eclipse build becomes wedged for | 
 | any reason, selecting the root folder of the Buck project and choosing | 
 | {sp}<strong>File -> Refresh</strong> followed by | 
 | {sp}<strong>Project -> Clean…</strong> should fix everything. | 
 | <p> | 
 | Note that if you are developing Buck, you should create a | 
 | {sp}<code>.nobuckcheck</code> file in the root of the project where you are | 
 | using Buck. Read the articles on | 
 | {sp}<a href="{ROOT}concept/nobuckcheck.html"><code>.nobuckcheck</code></a> and | 
 | {sp}<a href="{ROOT}concept/buckversion.html"><code>.buckversion</code></a> for | 
 | more details. | 
 | <p> | 
 | <strong>Note:</strong> Buck also contains the metadata files so that it can | 
 | be imported as a project in IntelliJ. Developing Buck in IntelliJ works | 
 | perfectly fine; however, it does not automatically overwrite the existing | 
 | {sp}<code>.class</code> files as Eclipse does. (You could likely add some | 
 | sort of build step to IntelliJ to make this possible, but we have not.) | 
 | Therefore, if you elect to develop Buck using IntelliJ, you may want to | 
 | create an alias for <code>buck</code> that runs <code>ant</code> before | 
 | running Buck to reduce the friction of developing with IntelliJ. | 
 |     {/param} | 
 |   {/call} | 
 | {/template} |