flake.nix
1 { 2 description = "A Nix-flake-based Java development environment"; 3 4 inputs = { 5 nixpkgs.url = "github:NixOS/nixpkgs/release-22.11"; 6 flake-utils.url = "github:numtide/flake-utils"; 7 }; 8 9 outputs = 10 { self 11 , nixpkgs 12 , flake-utils 13 }: 14 15 flake-utils.lib.eachDefaultSystem (system: 16 let 17 javaVersion = 17; 18 19 overlays = [ 20 (self: super: rec { 21 jdk = super."jdk${toString javaVersion}"; 22 gradle = super.gradle.override { 23 java = jdk; 24 }; 25 maven = super.maven.override { 26 inherit jdk; 27 }; 28 }) 29 ]; 30 31 pkgs = import nixpkgs { inherit overlays system; }; 32 in 33 { 34 devShells.default = pkgs.mkShell { 35 packages = with pkgs; [ gradle jdk maven ]; 36 37 shellHook = '' 38 ${pkgs.jdk}/bin/java -version 39 ''; 40 }; 41 }); 42 }