84 lines
2.6 KiB
Markdown
84 lines
2.6 KiB
Markdown
## Building from source
|
|
|
|
Ensure you have JDK 8 (or newer), Maven 3.5.4 (or newer) and Git installed
|
|
|
|
java -version
|
|
mvn -version
|
|
git --version
|
|
|
|
**NOTE**
|
|
|
|
If you use Maven 3.8.1 or newer, please add the following mirror to your local
|
|
`~/.m2/settings.xml` to avoid build errors:
|
|
```
|
|
<mirrors>
|
|
<mirror>
|
|
<id>jboss-public-repository-group-https</id>
|
|
<mirrorOf>jboss-public-repository-group</mirrorOf>
|
|
<name>Jboss public https</name>
|
|
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
|
|
</mirror>
|
|
</mirrors>
|
|
```
|
|
See [KEYCLOAK-17812](https://issues.redhat.com/browse/KEYCLOAK-17812) for more details.
|
|
|
|
---
|
|
First clone the Keycloak repository:
|
|
|
|
git clone https://github.com/keycloak/keycloak.git
|
|
cd keycloak
|
|
|
|
To build Keycloak run:
|
|
|
|
mvn clean install
|
|
|
|
This will build all modules and run the testsuite.
|
|
|
|
To build the ZIP distribution run:
|
|
|
|
mvn clean install -Pdistribution
|
|
|
|
Once completed you will find distribution archives in `distribution`.
|
|
|
|
To build only the server run:
|
|
|
|
mvn -Pdistribution -pl distribution/server-dist -am -Dmaven.test.skip clean install
|
|
|
|
---
|
|
**NOTE**
|
|
|
|
Classes from `org.keycloak.testsuite.*` packages aren't suitable to be used in production.
|
|
|
|
---
|
|
|
|
### Building Quarkus Distribution
|
|
|
|
Please, take a look at this [documentation](../quarkus/README.md).
|
|
|
|
## Starting Keycloak
|
|
|
|
To start Keycloak during development first build as specified above, then run:
|
|
|
|
mvn -f testsuite/utils/pom.xml exec:java -Pkeycloak-server
|
|
|
|
When running testsuite, by default an account with username `admin` and password `admin` will be created within the master realm at start.
|
|
|
|
To start Keycloak from the server distribution first build the distribution it as specified above, then run:
|
|
|
|
tar xfz distribution/server-dist/target/keycloak-<VERSION>.tar.gz
|
|
cd keycloak-<VERSION>
|
|
bin/standalone.sh
|
|
|
|
To stop the server press `Ctrl + C`.
|
|
|
|
|
|
## Working with the codebase
|
|
|
|
We don't currently enforce a code style in Keycloak, but a good reference is the code style used by WildFly. This can be
|
|
retrieved from [Wildfly ide-configs](https://github.com/wildfly/wildfly-core/tree/master/ide-configs).To import formatting
|
|
rules, see following [instructions](http://community.jboss.org/wiki/ImportFormattingRules).
|
|
|
|
If your changes require updates to the database read [Updating Database Schema](updating-database-schema.md).
|
|
|
|
If your changes require introducing new dependencies or updating dependency versions please discuss this first on the
|
|
dev mailing list. We do not accept new dependencies to be added lightly, so try to use what is available.
|