Development setup
Development environment and tools
Developers are free to choose the tools they feel most comfortable with. However, the following tools are recommended:
-
IntelliJ IDEA[1] for working with the code
-
Toolbox App for installing JetBrains products and managing IDE versions
-
-
SDKMAN for managing JDKs
-
Docker and Docker Compose for managing (development) containers
-
lab, if you want to interact with GitLab via the command-line (optional)
Developers should also be familiar with Gradle, our build management tool, as well as Asciidoctor, our documentation tool. (Both do not need to be installed.)
Gradle is provided with the repository and does not need to be installed separately.
The gradlew
wrapper script can be used to call it from the command-line.
(IntelliJ IDEA will automatically pick it up.)
Asciidoctor is installed via a Gradle plug-in and can be run from Gradle by executing the asciidoctor
task.
Programming language and libraries
Developers should be familiar with the following languages, frameworks and/or libraries used by the ORKG backend:
-
Kotlin (JVM), the programming language used
-
Spring Boot as well as
-
Spring Data, specifically Spring Data JPA and Spring Data Neo4j
-
Spring Security, specifically Spring Security OAuth
-
-
AssertJ for testing
Downloading JavaDoc artifacts
If you like reading the documentation and sources inside IDEA, Gradle needs to download the javadoc
and sources
artifacts of all dependencies.
You can set downloadJavadoc=true
and downloadSources=true
in your personal Gradle properties file, located at ~/.gradle/gradle.properties
.
If not set, Gradle is configured to not download the documentation (to be consistent with the default behavior).