<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 `main` 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 `main` 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>
