diff options
author | Anderson Torres <torres.anderson.85@protonmail.com> | 2024-06-02 20:15:40 -0300 |
---|---|---|
committer | Anderson Torres <torres.anderson.85@protonmail.com> | 2024-06-04 21:56:17 -0300 |
commit | d1402093675d1314f86cce1471cb3d2ffa22c08d (patch) | |
tree | 51dd714cd89d20b78f6f75aeedd896c1a4a41ecf /pkgs/development/tools/build-managers | |
parent | 8b1530b937c6d1a82bddaa1594b31558921ab98e (diff) |
maven: migrate to by-name
Diffstat (limited to 'pkgs/development/tools/build-managers')
3 files changed, 0 insertions, 241 deletions
diff --git a/pkgs/development/tools/build-managers/apache-maven/build-maven.nix b/pkgs/development/tools/build-managers/apache-maven/build-maven.nix deleted file mode 100644 index 7ac8afdde225a..0000000000000 --- a/pkgs/development/tools/build-managers/apache-maven/build-maven.nix +++ /dev/null @@ -1,88 +0,0 @@ -{ stdenv, maven, runCommand, writeText, fetchurl, lib, requireFile, linkFarm }: -# Takes an info file generated by mvn2nix -# (https://github.com/NixOS/mvn2nix-maven-plugin) and builds the maven -# project with it. -# -# repo: A local maven repository with the project's dependencies. -# -# settings: A settings.xml to pass to maven to use the repo. -# -# build: A simple build derivation that uses mvn compile and package to build -# the project. -# -# @example -# project = pkgs.buildMaven ./project-info.json -infoFile: -let - info = lib.importJSON infoFile; - - dependencies = lib.flatten (map (dep: - let - inherit (dep) sha1 groupId artifactId version metadata repository-id; - versionDir = dep.unresolved-version or version; - authenticated = dep.authenticated or false; - url = dep.url or ""; - - fetch = if (url != "") then - ((if authenticated then requireFile else fetchurl) { - inherit url sha1; - }) - else - ""; - - fetchMetadata = (if authenticated then requireFile else fetchurl) { - inherit (metadata) url sha1; - }; - - layout = "${ - builtins.replaceStrings [ "." ] [ "/" ] groupId - }/${artifactId}/${versionDir}"; - in lib.optional (url != "") { - layout = "${layout}/${fetch.name}"; - drv = fetch; - } ++ lib.optionals (dep ? metadata) ([{ - layout = "${layout}/maven-metadata-${repository-id}.xml"; - drv = fetchMetadata; - }] ++ lib.optional (fetch != "") { - layout = "${layout}/${ - builtins.replaceStrings [ version ] [ dep.unresolved-version ] - fetch.name - }"; - drv = fetch; - })) info.dependencies); - - repo = linkFarm "maven-repository" (lib.forEach dependencies (dependency: { - name = dependency.layout; - path = dependency.drv; - })); - - settings = writeText "settings.xml" '' - <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 - http://maven.apache.org/xsd/settings-1.0.0.xsd"> - <localRepository>${repo}</localRepository> - </settings> - ''; - - src = dirOf infoFile; -in { - inherit repo settings info; - - build = stdenv.mkDerivation { - name = "${info.project.artifactId}-${info.project.version}.jar"; - - src = builtins.filterSource (path: type: - (toString path) != (toString (src + "/target")) && (toString path) - != (toString (src + "/.git"))) src; - - buildInputs = [ maven ]; - - buildPhase = "mvn --offline --settings ${settings} compile"; - - installPhase = '' - mvn --offline --settings ${settings} package - mv target/*.jar $out - ''; - }; -} diff --git a/pkgs/development/tools/build-managers/apache-maven/build-package.nix b/pkgs/development/tools/build-managers/apache-maven/build-package.nix deleted file mode 100644 index f9ff54696dfe9..0000000000000 --- a/pkgs/development/tools/build-managers/apache-maven/build-package.nix +++ /dev/null @@ -1,98 +0,0 @@ -{ lib -, stdenv -, maven -}: - -{ src -, sourceRoot ? null -, buildOffline ? false -, doCheck ? true -, patches ? [ ] -, pname -, version -, mvnHash ? "" -, mvnFetchExtraArgs ? { } -, mvnDepsParameters ? "" -, manualMvnArtifacts ? [ ] -, manualMvnSources ? [ ] -, mvnParameters ? "" -, ... -} @args: - -# originally extracted from dbeaver -# created to allow using maven packages in the same style as rust - -let - mvnSkipTests = lib.optionalString (!doCheck) "-DskipTests"; - fetchedMavenDeps = stdenv.mkDerivation ({ - name = "${pname}-${version}-maven-deps"; - inherit src sourceRoot patches; - - nativeBuildInputs = [ - maven - ] ++ args.nativeBuildInputs or [ ]; - - buildPhase = '' - runHook preBuild - '' + lib.optionalString buildOffline '' - mvn de.qaware.maven:go-offline-maven-plugin:1.2.8:resolve-dependencies -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 - - for artifactId in ${builtins.toString manualMvnSources} - do - group=$(echo $artifactId | cut -d':' -f1) - artifact=$(echo $artifactId | cut -d':' -f2) - echo "downloading manual sources $artifactId" - mvn dependency:sources -DincludeGroupIds="$group" -DincludeArtifactIds="$artifact" -Dmaven.repo.local=$out/.m2 - done - '' + lib.optionalString (!buildOffline) '' - mvn package -Dmaven.repo.local=$out/.m2 ${mvnSkipTests} ${mvnParameters} - '' + '' - runHook postBuild - ''; - - # keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside - installPhase = '' - runHook preInstall - - find $out -type f \( \ - -name \*.lastUpdated \ - -o -name resolver-status.properties \ - -o -name _remote.repositories \) \ - -delete - - runHook postInstall - ''; - - # don't do any fixup - dontFixup = true; - outputHashAlgo = if mvnHash != "" then null else "sha256"; - outputHashMode = "recursive"; - outputHash = mvnHash; - } // mvnFetchExtraArgs); -in -stdenv.mkDerivation (builtins.removeAttrs args [ "mvnFetchExtraArgs" ] // { - inherit fetchedMavenDeps; - - nativeBuildInputs = args.nativeBuildInputs or [ ] ++ [ - maven - ]; - - buildPhase = '' - runHook preBuild - - mvnDeps=$(cp -dpR ${fetchedMavenDeps}/.m2 ./ && chmod +w -R .m2 && pwd) - mvn package -o -nsu "-Dmaven.repo.local=$mvnDeps/.m2" ${mvnSkipTests} ${mvnParameters} - - runHook postBuild - ''; - - meta = args.meta or { } // { - platforms = args.meta.platforms or maven.meta.platforms; - }; -}) diff --git a/pkgs/development/tools/build-managers/apache-maven/default.nix b/pkgs/development/tools/build-managers/apache-maven/default.nix deleted file mode 100644 index 388973782e53a..0000000000000 --- a/pkgs/development/tools/build-managers/apache-maven/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib -, stdenvNoCC -, fetchurl -, jdk -, makeWrapper -, callPackage -}: - -assert jdk != null; - -stdenvNoCC.mkDerivation (finalAttrs: { - pname = "apache-maven"; - version = "3.9.6"; - - src = fetchurl { - url = "mirror://apache/maven/maven-3/${finalAttrs.version}/binaries/${finalAttrs.pname}-${finalAttrs.version}-bin.tar.gz"; - hash = "sha256-bu3SyuNibWrTpcnuMkvSZYU9ZCl/B/AzQwdVvQ4MOks="; - }; - - sourceRoot = "."; - - nativeBuildInputs = [ makeWrapper ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out/maven - cp -r ${finalAttrs.pname}-${finalAttrs.version}/* $out/maven - - makeWrapper $out/maven/bin/mvn $out/bin/mvn \ - --set-default JAVA_HOME "${jdk}" - makeWrapper $out/maven/bin/mvnDebug $out/bin/mvnDebug \ - --set-default JAVA_HOME "${jdk}" - - runHook postInstall - ''; - - passthru = { - buildMaven = callPackage ./build-maven.nix { - maven = finalAttrs.finalPackage; - }; - buildMavenPackage = callPackage ./build-package.nix { - maven = finalAttrs.finalPackage; - }; - }; - - meta = with lib; { - mainProgram = "mvn"; - description = "Build automation tool (used primarily for Java projects)"; - homepage = "https://maven.apache.org/"; - license = licenses.asl20; - platforms = platforms.unix; - maintainers = with maintainers; [ cko ]; - }; -}) |