diff --git a/pkgs/by-name/ma/maven/build-maven-package.nix b/pkgs/by-name/ma/maven/build-maven-package.nix index f737507ddb73..afa25872e976 100644 --- a/pkgs/by-name/ma/maven/build-maven-package.nix +++ b/pkgs/by-name/ma/maven/build-maven-package.nix @@ -20,6 +20,15 @@ let version, mvnJdk ? jdk, mvnHash ? "", + /** + Maven goal to execute. Normally the the default should be used, but some special cases need other goals. + */ + mvnGoal ? "package", + /** + Set the Maven offline argument, `-o`. Normally the default is preferred, but to call `mvn deploy` with + a directory destination `-o` must be removed. In that case we rely on the Nix sandbox to keep things hermetic. + */ + mvnOffline ? true, mvnFetchExtraArgs ? { }, mvnDepsParameters ? "", manualMvnArtifacts ? [ ], @@ -143,7 +152,9 @@ let mvnDeps=$(cp -dpR ${fetchedMavenDeps}/.m2 ./ && chmod +w -R .m2 && pwd) runHook afterDepsSetup - mvn package -o -nsu "-Dmaven.repo.local=$mvnDeps/.m2" ${mvnSkipTests} ${mvnParameters} + mvn ${mvnGoal} ${ + if mvnOffline then "-o" else "" + } -nsu "-Dmaven.repo.local=$mvnDeps/.m2" ${mvnSkipTests} ${mvnParameters} runHook postBuild '';