<a name="DeveloperResources-ApacheShiroDeveloperResources"></a>
#[[#Apache Shiro Developer Resources]]#

This page and its children are dedicated for reference information used by the Apache Shiro development team when performing tasks as a committer or contributor

<a name="DeveloperResources-WritingDocumentation"></a>
#[[##Writing Documentation]]#

All non-JavaDoc documentation is managed in our [apache/shiro-site](https://github.com/apache/shiro-site) repo.

<a name="DeveloperResources-SourceCodeRepository"></a>
#[[##Source Code Repository]]#

We use a Git repository located at [git://git.apache.org/shiro.git](git://git.apache.org/shiro.git).

Active development is done in the `master` branch, and maintenance typically on the `1.2.x` branch.

<a name="DeveloperResources-BuildingfromGit"></a>
#[[###Building from Git]]#

For Shiro cutting-edge development, you can clone the code from Git and build it using [Maven](http://maven.apache.org) 2.2+:

1.  Check out the code:

    ``` bash
    git clone https://github.com/apache/shiro.git
    ```

2.  Build the project using [Maven](http://maven.apache.org) 3.x+:
    
    ``` bash
    cd shiro
    mvn install
    ```
    
    The resulting artifacts will be in your local M2 Repo under the org.apache.shiro group.

#danger('Cutting-edge development', 'When building from `master` or any branches, use the generated artifacts at your own risk!  Current and previous stable releases will always be available via the <a href="download.html" title="Download">Download</a> page.')
<input type="hidden" id="ghEditPage" value="developer-resources.md.vtl"></input>
