In addition to installing the JDK, you'll need to install either the Maven or Gradle build systems in your shell.
In both cases, you'll want to first activate devbox shell before generating your Maven or Gradle projects, so that the tools use the right version of the JDK for creating your project.
devbox add jdk binutils, or in your devbox.json
"packages": [
"jdk@latest",
"binutils@latest"
],
This will install the latest version of the JDK. To find other installable versions of the JDK, run devbox search jdk.
Other distributions of the JDK (such as OracleJDK and Eclipse Temurin) are available in Nixpkgs, and can be found using NixPkg Search
Maven is an all-in-one CI-CD tool for building testing and deploying Java projects. To setup a sample project with Java and Maven in devbox follow the steps below:
- Create a dummy folder:
dummy/and calldevbox initinside it. Then add the nix-pkg:devbox add jdkanddevbox add maven.- Replace
jdkwith the version of JDK you want. Get the exact nix-pkg name fromsearch.nixos.org.
- Replace
- Then do
devbox shellto get a shell with thatjdknix pkg. - Then do:
mvn archetype:generate -DgroupId=com.devbox.mavenapp -DartifactId=devbox-maven-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false- In the generated
pom.xmlfile, replace java version in<maven.compiler.source>with the specific version you are testing for.
- In the generated
mvn packageshould compile the package and create atarget/directory.java -cp target/devbox-maven-app-1.0-SNAPSHOT.jar com.devbox.mavenapp.Appshould print "Hello World!".- Add
target/to.gitignore.
An example devbox.json would look like the following:
{
"packages": [
"maven",
"jdk",
"binutils"
],
"shell": {
"init_hook": null
}
}

