diff --git a/pkgs/development/tools/build-managers/apache-maven/build-package.nix b/pkgs/development/tools/build-managers/apache-maven/build-package.nix index 2026d6829371..e069b5a4daaa 100644 --- a/pkgs/development/tools/build-managers/apache-maven/build-package.nix +++ b/pkgs/development/tools/build-managers/apache-maven/build-package.nix @@ -5,11 +5,14 @@ { src , sourceRoot ? null +, buildOffline ? false , patches ? [ ] , pname , version , mvnHash ? "" , mvnFetchExtraArgs ? { } +, mvnDepsParameters ? "" +, manualMvnArtifacts ? [ ] , mvnParameters ? "" , ... } @args: @@ -28,9 +31,17 @@ let buildPhase = '' runHook preBuild + '' + lib.optionalString buildOffline '' + mvn dependency:go-offline -Dmaven.repo.local=$out/.m2 ${mvnDepsParameters} + for artifactId in ${builtins.toString manualMvnArtifacts} + do + echo "downloading manual $artifactId" + mvn dependency:get -Dartifact="$artifactId" -Dmaven.repo.local=$out/.m2 + done + '' + lib.optionalString (!buildOffline) '' mvn package -Dmaven.repo.local=$out/.m2 ${mvnParameters} - + '' + '' runHook postBuild ''; @@ -65,7 +76,7 @@ stdenv.mkDerivation (builtins.removeAttrs args [ "mvnFetchExtraArgs" ] // { runHook preBuild mvnDeps=$(cp -dpR ${fetchedMavenDeps}/.m2 ./ && chmod +w -R .m2 && pwd) - mvn package --offline "-Dmaven.repo.local=$mvnDeps/.m2" ${mvnParameters} + mvn package -o -nsu "-Dmaven.repo.local=$mvnDeps/.m2" ${mvnParameters} runHook postBuild '';