1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- {
- inputs = rec {
- nixpkgs.url = github:NixOS/nixpkgs/nixos-unstable;
- flake-utils.url = "github:numtide/flake-utils";
- mvn2nix = {
- url = "github:fzakaria/mvn2nix";
- inputs.nixpkgs.follows = "nixpkgs";
- inputs.utils.follows = "flake-utils";
- };
- };
- outputs = { nixpkgs, mvn2nix, flake-utils, ... }:
- flake-utils.lib.eachDefaultSystem (system:
- let
- pkgs = (import nixpkgs {
- overlays = [ mvn2nix.overlay ];
- inherit system;
- });
- mavenRepository = pkgs.buildMavenRepositoryFromLockFile {
- file = ./mvn2nix-lock.json;
- };
- in rec {
- packages = rec {
- wee = pkgs.stdenv.mkDerivation rec {
- pname = "wee";
- version = "0.0.1";
- name = "${pname}-${version}";
- src = pkgs.nix-gitignore.gitignoreSource [ "*.nix" ] ./.;
- nativeBuildInputs = [
- pkgs.makeWrapper
- ];
- buildPhase = ''
- echo "Building with maven repository ${mavenRepository}"
- ${pkgs.maven}/bin/mvn package --offline -Dmaven.repo.local=${mavenRepository}
- '';
- installPhase = ''
- # create the bin directory
- mkdir -p $out/bin
- # create a symbolic link for the lib directory
- ln -s ${mavenRepository} $out/lib
- # copy out the JAR
- # Maven already setup the classpath to use m2 repository layout
- # with the prefix of lib/
- cp target/${name}.jar $out/
- # create a wrapper that will automatically set the classpath
- # this should be the paths from the dependency derivation
- makeWrapper ${pkgs.jdk11_headless}/bin/java $out/bin/${pname} \
- --add-flags "-jar $out/${name}.jar"
- '';
- };
- };
- defaultPackage = packages.wee;
- });
- }
|