fetchMavenArtifact: deprecate phases & use pname+version

This commit is contained in:
Felix Buehler 2023-03-05 17:42:40 +01:00
parent 972b0fa87f
commit 0f57b4bd73

View File

@ -37,13 +37,8 @@ assert (url == "") || (urls == []);
assert (repos != []) || (url != "") || (urls != []);
let
name_ =
lib.concatStrings [
(lib.replaceStrings ["."] ["_"] groupId) "_"
(lib.replaceStrings ["."] ["_"] artifactId) "-"
version
];
suffix = if isNull classifier then "" else "-${classifier}";
pname = (lib.replaceStrings [ "." ] [ "_" ] groupId) + "_" + (lib.replaceStrings [ "." ] [ "_" ] artifactId);
suffix = lib.optionalString (classifier != null) "-${classifier}";
filename = "${artifactId}-${version}${suffix}.jar";
mkJarUrl = repoUrl:
lib.concatStringsSep "/" [
@ -59,13 +54,13 @@ let
else map mkJarUrl repos;
jar =
fetchurl (
builtins.removeAttrs args ["groupId" "artifactId" "version" "classifier" "repos" "url" ]
// { urls = urls_; name = "${name_}.jar"; }
builtins.removeAttrs args [ "groupId" "artifactId" "version" "classifier" "repos" "url" ]
// { urls = urls_; name = "${pname}-${version}.jar"; }
);
in
stdenv.mkDerivation {
name = name_;
phases = "installPhase fixupPhase";
inherit pname version;
dontUnpack = true;
# By moving the jar to $out/share/java we make it discoverable by java
# packages packages that mention this derivation in their buildInputs.
installPhase = ''