{ stdenv, maven, lib, pkgs }: { mavenDeps, src, name, meta, m2Path, ... }: with builtins; with lib; stdenv.mkDerivation rec { inherit mavenDeps src name meta m2Path; flatDeps = unique (flatten (mavenDeps ++ pkgs.javaPackages.mavenPlugins.mavenMinimal)); propagatedBuildInput = [ maven ] ++ flatDeps; find = ''find ${foldl' (x: y: x + " " + y) "" (map (x: x + "/m2/") flatDeps)} -type d -printf '%P\n' | xargs -I {} mkdir -p $out/m2/{}''; copy = ''cp -rs ${foldl' (x: y: x + " " + y) "" (map (x: x + "/m2/*") flatDeps)} $out/m2''; buildPhase = '' mkdir -p $out/m2/${m2Path} ${optionalString (length flatDeps > 0) find} ${optionalString (length flatDeps > 0) copy} echo "\ tmpm2file://$out/m2*\ $out/m2" >> $out/m2/settings.xml ${maven}/bin/mvn clean install -Dmaven.test.skip=true -gs $out/m2/settings.xml ''; }