| | |
| | | ## Design Principles
|
| | | 1. [Keep It Simple, Stupid](http://en.wikipedia.org/wiki/KISS_principle)
|
| | | 2. Offer useful features for serving Git repositories. If feature is complex, refer to #1.
|
| | | 3. All dependencies must be retrievable from a publicly accessible [Maven](http://maven.apache.org) repository.<br/>This is to ensure authenticity of dependencies, to keep the Gitblit GO distribution svelte, and to automate the setup of developer environments. |
| | | 3. All dependencies must be retrievable from a publicly accessible [Maven](http://maven.apache.org) repository.<br/>This is to ensure authenticity of dependencies and to automate the setup of developer environments. |
| | |
|
| | | ## Architecture
|
| | |
|
| | |
| | | ### Bundled Dependencies
|
| | | The following dependencies are bundled with Gitblit.
|
| | |
|
| | | - [Bootstrap](http://twitter.github.com/bootstrap) (Apache 2.0)
|
| | | - [Clippy](https://github.com/mojombo/clippy) (MIT)
|
| | | - [google-code-prettify](http://code.google.com/p/google-code-prettify) (Apache 2.0)
|
| | | - [Commons Daemon](http://commons.apache.org/daemon) (Apache 2.0)
|
| | | - magnifying glass search icon courtesy of [Gnome](http://gnome.org) (Creative Commons CC-BY)
|
| | |
| | | - [jdom](http://www.jdom.org) (Apache-style JDOM license)
|
| | | - [google-gson](http://code.google.com/google-gson) (Apache 2.0)
|
| | | - [javamail](http://kenai.com/projects/javamail) (CDDL-1.0, BSD, GPL-2.0, GNU-Classpath)
|
| | | - [Groovy](http://groovy.codehaus.org) (Apache 2.0)
|
| | |
|
| | | ### Other Build Dependencies
|
| | | - [Fancybox image viewer](http://fancybox.net) (MIT and GPL dual-licensed)
|
| | | - [JUnit](http://junit.org) (Common Public License)
|
| | | - [commons-net](http://commons.apache.org/net) (Apache 2.0)
|
| | | - [ant-googlecode](http://code.google.com/p/ant-googlecode) (New BSD)
|
| | | - [GenJar](http://genjar.sourceforge.net) (Apache 1.1)
|
| | |
|
| | | ## Building from Source
|
| | | [Eclipse](http://eclipse.org) is recommended for development as the project settings are preconfigured.
|
| | |
| | | Additionally, [Google CodePro AnalytiX](http://code.google.com/javadevtools), [eclipse-cs](http://eclipse-cs.sourceforge.net), [FindBugs](http://findbugs.sourceforge.net), and [EclEmma](http://www.eclemma.org) are recommended development tools.
|
| | |
|
| | | 1. Clone the git repository from [Github][gitbltsrc].
|
| | | 2. Import the gitblit project into your Eclipse workspace.<br/>
|
| | | 2. Import the gitblit project into your Eclipse workspace. |
| | | *There will be lots of build errors.*
|
| | | 3. Using Ant, execute the `build.xml` script in the project root.<br/>
|
| | | 3. Using Ant, execute the `build.xml` script in the project root. |
| | | *This will download all necessary build dependencies and will also generate the Keys class for accessing settings.*
|
| | | 4. Select your gitblit project root and **Refresh** the project, this should correct all build problems.
|
| | | 5. Using JUnit, execute the `com.gitblit.tests.GitBlitSuite` test suite.<br/>
|
| | | 5. Using JUnit, execute the `com.gitblit.tests.GitBlitSuite` test suite. |
| | | *This will clone some repositories from the web and run through the unit tests.*
|
| | | 5. Review the settings in `gitblit.properties` in your project root.
|
| | | - By default, the *git.repositoriesFolder* points to the repositories cloned by the test suite.<br/>
|
| | | - By default, the *git.repositoriesFolder* points to the repositories cloned by the test suite. |
| | | - If running on Linux you may have to change the served port(s) to > 1024 unless you are developing as the root user.
|
| | | 6. Execute the *com.gitblit.Launcher* class to start Gitblit.
|
| | |
|