From d849c0e2e1236b22e298254e75f8d30a665af66f Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Sun, 30 Oct 2016 11:41:20 -0400
Subject: [PATCH 01/10] Build support

---
 pkgs/build-support/fetchurl/mirrors.nix       |  5 ++++
 .../java-modules/build-maven-package.nix      | 26 +++++++++++++++++++
 pkgs/development/java-modules/m2install.nix   | 21 +++++++++++++++
 pkgs/top-level/all-packages.nix               |  4 +++
 4 files changed, 56 insertions(+)
 create mode 100644 pkgs/development/java-modules/build-maven-package.nix
 create mode 100644 pkgs/development/java-modules/m2install.nix

diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index 5ae5eb105e79..0304165828f0 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -396,4 +396,9 @@ rec {
     https://archive.mozilla.org/pub/
   ];
 
+  # Maven Central
+  maven = [
+    http://repo1.maven.org/maven2
+    http://central.maven.org/maven2
+  ];
 }
diff --git a/pkgs/development/java-modules/build-maven-package.nix b/pkgs/development/java-modules/build-maven-package.nix
new file mode 100644
index 000000000000..182740c552d8
--- /dev/null
+++ b/pkgs/development/java-modules/build-maven-package.nix
@@ -0,0 +1,26 @@
+{ stdenv, maven, lib }:
+{ mavenDeps, src, name, meta, m2Path, ... }:
+
+with builtins;
+with lib;
+
+stdenv.mkDerivation rec {
+  inherit mavenDeps src name meta m2Path;
+
+  flatDeps = flatten mavenDeps;
+
+  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 "<settings><mirrors>\
+        <mirror><id>tmpm2</id><url>file://$out/m2</url><mirrorOf>*</mirrorOf></mirror></mirrors>\
+        <localRepository>$out/m2</localRepository></settings>" >> $out/m2/settings.xml
+    ${maven}/bin/mvn clean install -Dmaven.test.skip=true -gs $out/m2/settings.xml
+  '';
+}
diff --git a/pkgs/development/java-modules/m2install.nix b/pkgs/development/java-modules/m2install.nix
new file mode 100644
index 000000000000..56ae8132c61c
--- /dev/null
+++ b/pkgs/development/java-modules/m2install.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl }:
+{ version, baseName, package, sha512, type ? "jar" }:
+
+let
+  name = "${baseName}-${version}";
+  m2Path = "${package}/${baseName}/${version}";
+  m2File = "${name}.${type}";
+  src = fetchurl rec {
+      inherit sha512;
+      url = "mirror://maven/${m2Path}/${m2File}";
+  };
+in stdenv.mkDerivation rec {
+  inherit name m2Path m2File src;
+
+  installPhase = ''
+    mkdir -p $out/m2/$m2Path
+    cp $src $out/m2/$m2Path/$m2File
+  '';
+
+  phases = "installPhase";
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6cb32f3ce4df..bd0bdc0b5109 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9761,6 +9761,10 @@ in
 
   leaps = callPackage ../development/tools/leaps { };
 
+  ### DEVELOPMENT / JAVA MODULES
+
+  javaPackages = recurseIntoAttrs (callPackage ./java-packages.nix { });
+
   ### DEVELOPMENT / LISP MODULES
 
   asdf = callPackage ../development/lisp-modules/asdf {

From 1f2e19b67cdb68a89fc99a70eff5b851e488ab97 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Sun, 30 Oct 2016 11:44:56 -0400
Subject: [PATCH 02/10] Partial junit_4_12

---
 .../java-modules/apache/commons-cli.nix       |  14 +
 .../java-modules/apache/commons-lang.nix      |  14 +
 .../java-modules/beanshell/bsh.nix            |  14 +
 .../java-modules/classworlds/classworlds.nix  |  14 +
 .../java-modules/eclipse/aether-util.nix      |  15 +
 .../java-modules/hamcrest/core.nix            |  16 +
 .../java-modules/junit/default.nix            |  33 ++
 .../java-modules/maven/artifact-manager.nix   |  14 +
 .../java-modules/maven/artifact.nix           |  25 ++
 .../maven/common-artifact-filters.nix         |  14 +
 pkgs/development/java-modules/maven/core.nix  |  14 +
 .../java-modules/maven/dependency-tree.nix    |  14 +
 .../java-modules/maven/doxia-sink-api.nix     |  14 +
 .../java-modules/maven/enforcer.nix           |  25 ++
 .../java-modules/maven/error-diagnostics.nix  |  14 +
 pkgs/development/java-modules/maven/model.nix |  25 ++
 .../java-modules/maven/monitor.nix            |  14 +
 .../java-modules/maven/plugin-api.nix         |  36 ++
 .../java-modules/maven/plugin-descriptor.nix  |  14 +
 .../maven/plugin-parameter-documenter.nix     |  14 +
 .../java-modules/maven/plugin-registry.nix    |  14 +
 .../java-modules/maven/profile.nix            |  14 +
 .../java-modules/maven/project.nix            |  14 +
 .../java-modules/maven/reporting-api.nix      |  14 +
 .../maven/repository-metadata.nix             |  14 +
 .../java-modules/maven/settings.nix           |  14 +
 .../development/java-modules/mavenPlugins.nix | 113 ++++++
 .../plexus/component-annotations.nix          |  14 +
 .../java-modules/plexus/container-default.nix |  14 +
 pkgs/development/java-modules/plexus/i18n.nix |  14 +
 .../java-modules/plexus/interactivity-api.nix |  14 +
 .../development/java-modules/plexus/utils.nix |  47 +++
 pkgs/development/java-modules/poms.nix        | 331 ++++++++++++++++++
 pkgs/top-level/java-packages.nix              | 113 ++++++
 34 files changed, 1101 insertions(+)
 create mode 100644 pkgs/development/java-modules/apache/commons-cli.nix
 create mode 100644 pkgs/development/java-modules/apache/commons-lang.nix
 create mode 100644 pkgs/development/java-modules/beanshell/bsh.nix
 create mode 100644 pkgs/development/java-modules/classworlds/classworlds.nix
 create mode 100644 pkgs/development/java-modules/eclipse/aether-util.nix
 create mode 100644 pkgs/development/java-modules/hamcrest/core.nix
 create mode 100644 pkgs/development/java-modules/junit/default.nix
 create mode 100644 pkgs/development/java-modules/maven/artifact-manager.nix
 create mode 100644 pkgs/development/java-modules/maven/artifact.nix
 create mode 100644 pkgs/development/java-modules/maven/common-artifact-filters.nix
 create mode 100644 pkgs/development/java-modules/maven/core.nix
 create mode 100644 pkgs/development/java-modules/maven/dependency-tree.nix
 create mode 100644 pkgs/development/java-modules/maven/doxia-sink-api.nix
 create mode 100644 pkgs/development/java-modules/maven/enforcer.nix
 create mode 100644 pkgs/development/java-modules/maven/error-diagnostics.nix
 create mode 100644 pkgs/development/java-modules/maven/model.nix
 create mode 100644 pkgs/development/java-modules/maven/monitor.nix
 create mode 100644 pkgs/development/java-modules/maven/plugin-api.nix
 create mode 100644 pkgs/development/java-modules/maven/plugin-descriptor.nix
 create mode 100644 pkgs/development/java-modules/maven/plugin-parameter-documenter.nix
 create mode 100644 pkgs/development/java-modules/maven/plugin-registry.nix
 create mode 100644 pkgs/development/java-modules/maven/profile.nix
 create mode 100644 pkgs/development/java-modules/maven/project.nix
 create mode 100644 pkgs/development/java-modules/maven/reporting-api.nix
 create mode 100644 pkgs/development/java-modules/maven/repository-metadata.nix
 create mode 100644 pkgs/development/java-modules/maven/settings.nix
 create mode 100644 pkgs/development/java-modules/mavenPlugins.nix
 create mode 100644 pkgs/development/java-modules/plexus/component-annotations.nix
 create mode 100644 pkgs/development/java-modules/plexus/container-default.nix
 create mode 100644 pkgs/development/java-modules/plexus/i18n.nix
 create mode 100644 pkgs/development/java-modules/plexus/interactivity-api.nix
 create mode 100644 pkgs/development/java-modules/plexus/utils.nix
 create mode 100644 pkgs/development/java-modules/poms.nix
 create mode 100644 pkgs/top-level/java-packages.nix

diff --git a/pkgs/development/java-modules/apache/commons-cli.nix b/pkgs/development/java-modules/apache/commons-cli.nix
new file mode 100644
index 000000000000..74087a04e0c9
--- /dev/null
+++ b/pkgs/development/java-modules/apache/commons-cli.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  commonsCli_1_0 = map (obj: fetchMaven {
+    version = "1.0";
+    baseName = "commons-cli";
+    package = "/commons-cli";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "1pm5ba95viabcgpjhsqw21iwis9ajn8hwpyc6rzs9frr5k62hs7lj8darxmmp21hf14mxrs37a8swayhagq6i6g8js4nl4r8mmwjlvp"; }
+    { type = "jar"; sha512 = "0ybdbpfzadkncwcmnzkscbp2fhmcsqmpy60qppz7s8hs00hgqy64jr4qpdyz5bj0l4bc434vn0pv4gzxzi7y1lhh7b2rk4zv1mgs3ff"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/apache/commons-lang.nix b/pkgs/development/java-modules/apache/commons-lang.nix
new file mode 100644
index 000000000000..eb60d19e8183
--- /dev/null
+++ b/pkgs/development/java-modules/apache/commons-lang.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  commonsLang_2_3 = map (obj: fetchMaven {
+    version = "2.3";
+    baseName = "commons-lang";
+    package = "/commons-lang";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "0i94xb3fgq0ig0aids9r1h1kblhlf762gsjxh422ra23saa4474q4iywgfk596bpcflngf2sarq8ch6lw09p0g43779d23b74bd939n"; }
+    { type = "jar"; sha512 = "1f30pryvd39m2yazflzy5l1h4l473dj8ccrd9v8z8lb6iassn4xc142f2snkzxlc7ncqsi6fbfd3zfxsy8afivmxmxds6mbsrxayqwk"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/beanshell/bsh.nix b/pkgs/development/java-modules/beanshell/bsh.nix
new file mode 100644
index 000000000000..e636fe557ecc
--- /dev/null
+++ b/pkgs/development/java-modules/beanshell/bsh.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  bsh_2_0_b4 = map (obj: fetchMaven {
+    version = "2.0b4";
+    baseName = "bsh";
+    package = "/org/beanshell";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "1xgl3zw2gaca7f09224k3bi22dqdcd589c5jqk7p87s6dlbaai8sivklbq225yxmcpmwsi98r0a6xlgxnxnhk3b0qplf1bj4qp17dx9"; }
+    { type = "jar"; sha512 = "1idcadxcphpqh2f6qjijd2gdcklcv9qmv1aalh2z5rk5vipqm89hm05lwjapw2gy5x5q1grzxraalnspbhacrrwm15np07580k6vki9"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/classworlds/classworlds.nix b/pkgs/development/java-modules/classworlds/classworlds.nix
new file mode 100644
index 000000000000..a177927d3d68
--- /dev/null
+++ b/pkgs/development/java-modules/classworlds/classworlds.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  classworlds_1_1 = map (obj: fetchMaven {
+    version = "1.1";
+    baseName = "classworlds";
+    package = "/classworlds";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "202zfp93ly15q5iamjwy2vsrip8i87pmv5pqyxl9v7wvcmd4flyhlhkkx7hw9jy82dbzglrs2jklsm96dy22nv1njm5dw5kbzarhakq"; }
+    { type = "jar"; sha512 = "1cs8v7hhbgwfmlx4dm7r78mki5vk0gjn798qy4w1qzkz90hf9yl52srpjair2fg96qsmk22nd73r92vdmjji65l75ji3kfghzx9872x"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/eclipse/aether-util.nix b/pkgs/development/java-modules/eclipse/aether-util.nix
new file mode 100644
index 000000000000..33ba3d5edd78
--- /dev/null
+++ b/pkgs/development/java-modules/eclipse/aether-util.nix
@@ -0,0 +1,15 @@
+{ fetchMaven }:
+
+rec {
+  aetherUtil_0_9_0_M2 = map (obj: fetchMaven {
+    version = "0.9.0.M2";
+    baseName = "aether-util";
+    package = "/org/eclipse/aether";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1qh3vzdf33fffsry9256vbaskhp0xsw1d8s7c429a1hiyz8qi9p2sqsh2mqj5vrfj0mxri1nm68pv0nm9fhqzrwfy6f2sihl8rp7df1"; }
+    { type = "pom"; sha512 = "2a0z5r5avm7gfkabkha6h1b0gbnma725dqby9wz6lhhkwqhn3zmdr69a0ll6vfh1mv0ir4spcr02hi61xlng4lakdlmwllm0g5ixaiz"; }
+  ];
+}
+
diff --git a/pkgs/development/java-modules/hamcrest/core.nix b/pkgs/development/java-modules/hamcrest/core.nix
new file mode 100644
index 000000000000..1414dc1fe6bb
--- /dev/null
+++ b/pkgs/development/java-modules/hamcrest/core.nix
@@ -0,0 +1,16 @@
+{ fetchMaven }:
+
+rec {
+  # Ant build, just fetch the binary
+  hamcrestCore_1_3 = map (obj: fetchMaven {
+    version = "1.3";
+    baseName = "hamcrest-core";
+    package = "/org/hamcrest";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "14vx453pk5shchdn3sz17s5im1cq1vav19rwnybafnsq2blfn3d0xz01cf9h1gnzclivhc4wgf7vvs23wcr7iiy4nksakxcb9rswdz2"; }
+    { type = "pom"; sha512 = "3rn4bs9ixdnwg916qdkjjv9m17l0ym7zj6cxaf18304wlbshxcb1fpa11rnll9g76ap0f4z8r70z3snfj6kyf6sw9xf9xpq4n1796rg"; }
+  ];
+}
+
diff --git a/pkgs/development/java-modules/junit/default.nix b/pkgs/development/java-modules/junit/default.nix
new file mode 100644
index 000000000000..7325b07700fe
--- /dev/null
+++ b/pkgs/development/java-modules/junit/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, pkgs, mavenbuild }:
+
+with pkgs.javaPackages;
+
+rec {
+  junitGen = { mavenDeps, sha512, version }: mavenbuild rec {
+    inherit mavenDeps sha512 version;
+
+    name = "junit-${version}";
+    src = pkgs.fetchFromGitHub {
+      inherit sha512;
+      owner = "junit-team";
+      repo = "junit4";
+      rev = "r${version}";
+    };
+    m2Path = "/junit/junit/${version}";
+
+    meta = {
+      homepage = http://junit.org/junit4/;
+      description = "Simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks";
+      license = stdenv.lib.licenses.epl10;
+      platforms = stdenv.lib.platforms.all;
+      maintainers = with stdenv.lib.maintainers;
+        [ nequissimus ];
+    };
+  };
+
+  junit_4_12 = junitGen {
+    mavenDeps = [ mavenPlugins.animalSniffer_1_11 hamcrestCore_1_3 plexusUtils_1_1 ] ++ mavenPlugins.mavenDefault;
+    sha512 = "0bbldnf37jl855s1pdx2a518ivfifv75189vsbpylnj8530vnf8z6b2dglkcbcjgr22lp1s4m1nnplz5dmka9sr7vj055p88k27kqw9";
+    version = "4.12";
+  };
+}
diff --git a/pkgs/development/java-modules/maven/artifact-manager.nix b/pkgs/development/java-modules/maven/artifact-manager.nix
new file mode 100644
index 000000000000..b46fb254b173
--- /dev/null
+++ b/pkgs/development/java-modules/maven/artifact-manager.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenArtifactManager_2_0_9 = map (obj: fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-artifact-manager";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1vvxf2dannx9p2qvlbmrxfni5mc0f3722p3bcdz6bk3z4dhb2hlw2wx17nvirq5r3k43azgp13mg0638saz7v1g23f07n9yzm979f0p"; }
+    { type = "pom"; sha512 = "2v7371gsarjb4s2bp5vclqgdg82mh7nzy7af31g9z20q2r6ndw024xa8bpcxp227yv83lpawbhq0ysg0glnw9ql54100h9hbllam0p8"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/artifact.nix b/pkgs/development/java-modules/maven/artifact.nix
new file mode 100644
index 000000000000..d0b528b916ae
--- /dev/null
+++ b/pkgs/development/java-modules/maven/artifact.nix
@@ -0,0 +1,25 @@
+{ fetchMaven }:
+
+rec {
+  mavenArtifact_2_0_9 = map (obj: fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-artifact";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "17g913m1zbrvarkwvmz5xx9nv7mrk2984rc9pkbc2laid7n1nb226g0262xyhcnc2s57av96337ag6jg2bq9p1kgx7gbd2z6gnvkkia"; }
+    { type = "pom"; sha512 = "0g0cbqihzxyaa1b0z9a7qb8lkhcm8bzxi7qnqaab2n2zaaql6jyy7cf4z4yzqw3yfj7ylqvydiwp32j2c7nqacyx0hmcydqkqg46kxv"; }
+  ];
+
+  mavenArtifact_3_0_3 = map (obj: fetchMaven {
+    version = "3.0.3";
+    baseName = "maven-artifact";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0f842m7wi9ajvphgshnmsn8dppiwr326yp663gic45xzkpfvka118npl8xxqnr683dipvbnbrddim974qcpz4mgpypir0922803i3qv"; }
+    { type = "pom"; sha512 = "3wpambpgm68rap906gdvwlbywgjs57nkc8k05r8rx701800zbpwlrzc9b3ipxgjb7y6f2z1vi14yj9ia12wv7k8jn2aspf31pzp5plq"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/common-artifact-filters.nix b/pkgs/development/java-modules/maven/common-artifact-filters.nix
new file mode 100644
index 000000000000..4d46de674b55
--- /dev/null
+++ b/pkgs/development/java-modules/maven/common-artifact-filters.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenCommonArtifactFilters_1_4 = map (obj: fetchMaven {
+    version = "1.4";
+    baseName = "maven-common-artifact-filters";
+    package = "/org/apache/maven/shared";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "21wyk4llwjyanlggy281f9n0sjshjqvd322lbhxmzn42cd9vmj0s6xih82jwqlkcxkypwymyj1gl7van55ibd98p1jjjvr93gs1cn14"; }
+    { type = "jar"; sha512 = "1bv4lp1a8sb79almnygiq0pmm0fdhy9pyakp6xhz91b4v1cqg03sb586yc4lg2934yv4jjbybqjbh4l0y3kgnanjbxdxdgxgyf14iif"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/core.nix b/pkgs/development/java-modules/maven/core.nix
new file mode 100644
index 000000000000..6aed7095ad25
--- /dev/null
+++ b/pkgs/development/java-modules/maven/core.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenCore_2_0_9 = map (obj: fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-core";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "1a17qcd05v08jpd9ah650kbmrdxrxjfl2jgx9fnc89x4ahzmml9fr2qal0pwnn0sw3g3j1cqbry9lwq5hzja6x779s90hqrb72s49l1"; }
+    { type = "jar"; sha512 = "0qp0kns07h4j7d67z0j09kjn0hwf6k6iz4vp2pmisx131f98acm516y8ca35ly7pp6zn9mdk3c4nh9c0rd7xnqvi12ijqrfvg01dri2"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/dependency-tree.nix b/pkgs/development/java-modules/maven/dependency-tree.nix
new file mode 100644
index 000000000000..cdd626e58486
--- /dev/null
+++ b/pkgs/development/java-modules/maven/dependency-tree.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenDependencyTree_2_1 = map (obj: fetchMaven {
+    version = "2.1";
+    baseName = "maven-dependency-tree";
+    package = "/org/apache/maven/shared";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "29ibiyc1x20yrnxgcpvvf3k0pcjq63l98lakk10gipmx8a7bqs6m7npcqhzq6a3xrrcnz4pp7mj9gkmcs1svhg3qj4778cdax5pfy39"; }
+    { type = "jar"; sha512 = "3mr5ph5yngfvqwvrbiwvs66d8gbhpjsp009q5hrarkg53kwlphy6rmvdkfzp4j5rz8dd4cirv7vf6nhhrpdnjy2fc8bhx2s61zissnd"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/doxia-sink-api.nix b/pkgs/development/java-modules/maven/doxia-sink-api.nix
new file mode 100644
index 000000000000..6acf39b480d7
--- /dev/null
+++ b/pkgs/development/java-modules/maven/doxia-sink-api.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenDoxiaSinkApi_1_0_alpha10 = map (obj: fetchMaven {
+    version = "1.0-alpha-10";
+    baseName = "doxia-sink-api";
+    package = "/org/apache/maven/doxia";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "31n980rx8m3sy6ia6izdjmc95pd8gvy31a1j933qznvs10flsf3gvmnywcyncf9y4pvaynddqjfvjpvf1qkxcw9jwjcmq7ka3325fi9"; }
+    { type = "jar"; sha512 = "1bgp929njkqvzv1q07drfncqagpkfw1ksi0cvwqq69ww2lbg3rmq2if11j7ldwn2rdvmfrr9qyhg34vwz13gfh7yylkw0il0q9h9hlj"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/enforcer.nix b/pkgs/development/java-modules/maven/enforcer.nix
new file mode 100644
index 000000000000..83037e6adee6
--- /dev/null
+++ b/pkgs/development/java-modules/maven/enforcer.nix
@@ -0,0 +1,25 @@
+{ fetchMaven }:
+
+rec {
+  mavenEnforcerApi_1_3_1 = map (obj: fetchMaven {
+    version = "1.3.1";
+    baseName = "enforcer-api";
+    package = "/org/apache/maven/enforcer";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "2bh75j9f1hf80yhikd2r014kq8pgf9b49w62w7v9772kwdsza84v527vph0ifldpk561aivz5v604a9rpw5zb03gkixr51qspmsg2hp"; }
+    { type = "jar"; sha512 = "2pi1df9brkrlqp36pvk8ccc308b2882nmb2c1pbp2vaf4v95wm529vyng5gv9012l6c293ciamaxiv019zv04hl3zsgpk0m5fg3qhs0"; }
+  ];
+
+  mavenEnforcerRules_1_3_1 = map (obj: fetchMaven {
+    version = "1.3.1";
+    baseName = "enforcer-rules";
+    package = "/org/apache/maven/enforcer";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "16i11v6rlym87zvq3x0nn7m8g5w3vyf3g097cz79a3hjmzf3zk12837wi007697nr5dfd3sq9r9cgxmqw77y6cyphaic71hmhv4jx7c"; }
+    { type = "jar"; sha512 = "33xp9dgdml15bf8dpw4b61wfqnkypixd697q60lan3hvv10bs33jfw8xxsj2pl2l11hca6whk2c1wdddc913s88r13zzaghgizwsx55"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/error-diagnostics.nix b/pkgs/development/java-modules/maven/error-diagnostics.nix
new file mode 100644
index 000000000000..22ac264bdd10
--- /dev/null
+++ b/pkgs/development/java-modules/maven/error-diagnostics.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenErrorDiagnostics_2_0_9 = map (obj: fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-error-diagnostics";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3czdrv2s1gafclm57m5qxw3aaxrm3r3z9yggscxg60fk0hn6jlpygclghkrl2g7c8ggdqdd01y6zcj1wgzq32yp1cd4s3kakf2y25dm"; }
+    { type = "pom"; sha512 = "3l0cpg0ssivfnadffc68cnac65vpfpl0qa9a4ik82jxcwhfa00337jxz37vyqaqs1vjrvd2cqhmjayddwkpwc8aqnz3nr0rlqnqzm7g"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/model.nix b/pkgs/development/java-modules/maven/model.nix
new file mode 100644
index 000000000000..fa3abf7c4d23
--- /dev/null
+++ b/pkgs/development/java-modules/maven/model.nix
@@ -0,0 +1,25 @@
+{ fetchMaven }:
+
+rec {
+  mavenModel_2_0_9 = map (obj: fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-model";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "14pxgdcim20x9lisf510nazzlcjxv9fpqabkdn0d86qa7d9270m4fmya5crasx2np9h0gxl407d77vcjf99fdxizg7i32w35yljqp3z"; }
+    { type = "pom"; sha512 = "2vvyawhfq0gwa54ir5l2drcfxphkd47ghwgz89v3vsqgjry714vp01pa5a6yjlwfd45mknyrb71ws6dki4zjgzhdm09ck7cxg5qkpr9"; }
+  ];
+
+  mavenModel_3_0_3 = map (obj: fetchMaven {
+    version = "3.0.3";
+    baseName = "maven-model";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "13b339n0iibvy9x1d34b6gsnlz2s26ap866nhm4wyrlb0hkyb4zf7xbvc8aigr9zzzc4msn3yi98ylgsbinxx8dkbs89x1amnd7v1nr"; }
+    { type = "pom"; sha512 = "38dbv2z16h1wq16pxx5nrpndpkmnmj6wxsa4x13hsm7skmfwxdr51ddjddc4qlqk9dfnny0yv3lf009k0pfs06hfn0xiv85ki5y1hfg"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/monitor.nix b/pkgs/development/java-modules/maven/monitor.nix
new file mode 100644
index 000000000000..1304304257aa
--- /dev/null
+++ b/pkgs/development/java-modules/maven/monitor.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenMonitor_2_0_9 = map (obj: fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-monitor";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2cxspfhf3sbz68y1kjqhw2lny6s1f1kf8sfad6f1qp653g4213c9yy7y3qk9szp528866vw7daa9gbymxd66k3bm09g1q4kgnkg5wn3"; }
+    { type = "pom"; sha512 = "0h9brjzkvxfmk549wmq4mw71yhhf1qb1diin9rnsc5nlvh189k60088b5pcc14324gffkrvdghivfy8spjci5izmay87qk7hfsg2lxc"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/plugin-api.nix b/pkgs/development/java-modules/maven/plugin-api.nix
new file mode 100644
index 000000000000..56069bf19709
--- /dev/null
+++ b/pkgs/development/java-modules/maven/plugin-api.nix
@@ -0,0 +1,36 @@
+{ fetchMaven }:
+
+rec {
+  mavenPluginApi_2_0_6 = map (obj: fetchMaven {
+    version = "2.0.6";
+    baseName = "maven-plugin-api";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "3926imf3d59530ldz9hajjq6xkb5mb1llx7br0025p8c1xfhgr4hqm6dripi0yd9f53sbdxhla5ly68q2vsbzbklpldrvrbz6b5wrql"; }
+    { type = "jar"; sha512 = "34fb0yw3z7bxlxxs8wmv59g351jkfp16ljq5zmyksq54kz2wvkv39w7bcnvlkbdwaggm7cd2jr9s4y4lynkblp8ydf9jbq8awwr7c00"; }
+  ];
+
+  mavenPluginApi_2_0_9 = map (obj: fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-plugin-api";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "23qj23k049jz4mp77h2wj4mnjqszb99l4xvxas93cpnbdl51a5s0d0rsg60a8zg0ic04n6fr8nig0vvmmcsggx93a96w4p3na97q30n"; }
+    { type = "jar"; sha512 = "0hvl32k09wr34b6v0wl27y6353mx3afsgwyfw0vpx5aa5b8wiw86vlbknh3kjl43zp2ffxq6b4c7n07jq3y2wczz08gscs5apszhj9q"; }
+  ];
+
+  mavenPluginApi_3_0_3 = map (obj: fetchMaven {
+    version = "3.0.3";
+    baseName = "maven-plugin-api";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "17zyw3j4zbg1hhj18i4q1f0r8gdxl3q9x5ksyqlyr0mrw2sadc6lvbbhyp3l7vsbddl4bgdx36gwvjp5d97gbmk1nbpi1vabadfhq76"; }
+    { type = "jar"; sha512 = "0rk2nzkwcrkfy3vs0zl0l2lxp3w4hkwxrypisbivv5al7sc8lbzls6jgpp3h5gx9kk4scjj24qf5vyimnbadj63rvqffg581fs2zgl9"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/plugin-descriptor.nix b/pkgs/development/java-modules/maven/plugin-descriptor.nix
new file mode 100644
index 000000000000..35b829a85785
--- /dev/null
+++ b/pkgs/development/java-modules/maven/plugin-descriptor.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenPluginDescriptor_2_0_9 = map (obj: fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-plugin-descriptor";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0q9jw44v1mi489bqmdvj7jpv753vdp9jzp50ky6pd912x190spkw6ccmpc87azmwsf131d4h0k0fqi6iidl9ip22a8rwaa22yq7gxi8"; }
+    { type = "pom"; sha512 = "0c4hrb6qhi8wxw7acyphv6l33973vhvg7vjknc3bx8bg36404ky9k78q79r3p2an2886hdfayb0l7wji86bq4q8464754gbx02ci7r8"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix b/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix
new file mode 100644
index 000000000000..17ed70bfa9f2
--- /dev/null
+++ b/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenPluginParameterDocumenter_2_0_9 = map (obj: fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-plugin-parameter-documenter";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0djr58wp7a93p96sn0k24d6liabd7a4qvsd0p7lk88ws3jwfw5bqh6d0a3fyc86fkask1wi7krrvsm7i6yiw1f1r0d6xjzj8fx5m4kz"; }
+    { type = "pom"; sha512 = "39mhwcxwcqgy6pk3qlabs1b8k8fqvkps6r1zb1n7phfwh4dklngyqdrxh90j3wjg3692l7as1k0439z2x124wlh6bzpv83jmx64jiyh"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/plugin-registry.nix b/pkgs/development/java-modules/maven/plugin-registry.nix
new file mode 100644
index 000000000000..baccc1aeb765
--- /dev/null
+++ b/pkgs/development/java-modules/maven/plugin-registry.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenPluginRegistry_2_0_9 = map (obj: fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-plugin-registry";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "14mkwxvj0rbj28df9gjnkvr20paayqdmsg0vrzcb23d3xng3zc1fy5hvkifnp7xg73qxpdz0nij56lnnj7q2dqxcnmqvh0vslhc2xja"; }
+    { type = "pom"; sha512 = "0c09imgd44b3pgnj1bjak7xn2z3mpwy9nhbchagfqkicras4djmn2dqwpm1z6p1d4khwx830x9grjrw45przan8lgc7wxzkalnnaqkf"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/profile.nix b/pkgs/development/java-modules/maven/profile.nix
new file mode 100644
index 000000000000..674f35a2ef9a
--- /dev/null
+++ b/pkgs/development/java-modules/maven/profile.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenProfile_2_0_9 = map (obj: fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-profile";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2v315cv62k3lmi23msk5rj9bijsafcajw7053jdzzk4zv03vdpdndm5cr995azrpdcvkcdq2m8zh5pdf44nzcdf2rvpm4nxdc2wr5rl"; }
+    { type = "pom"; sha512 = "05iif04frjgbmg7zb3jygn9av2ja48vs2z35b2zrlmgf3s1fxqlr4wxylrrmmk8r0hvg4qmg5j0inm414n0v4ipn08hrpzik5nhdfgy"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/project.nix b/pkgs/development/java-modules/maven/project.nix
new file mode 100644
index 000000000000..0d88850fb5db
--- /dev/null
+++ b/pkgs/development/java-modules/maven/project.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenProject_2_0_9 = map (obj: fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-project";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0laxsz9z48zvx27m395djfl9121jkr7amiv8n07z9nkz9i60wjl52bb7cw6hp6090ba098g8azqpnz8l5i0yj255phy1j6s92ci1i7c"; }
+    { type = "pom"; sha512 = "047a0a2bd5fkmg70gzhdiwiwq5dmr84pz6jq9yi5fz44y57ndp7nb72fnkr0p0qcwmry3gj03hk9p2xr4ph53bl1x68j22fnv0f9krq"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/reporting-api.nix b/pkgs/development/java-modules/maven/reporting-api.nix
new file mode 100644
index 000000000000..ea8088489112
--- /dev/null
+++ b/pkgs/development/java-modules/maven/reporting-api.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenReportingApi_2_0_9 = map (obj: fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-reporting-api";
+    package = "/org/apache/maven/reporting";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0x7j7k3xbxps80swyp4ff1sw4rwrhlxsx80kyh0sj0i9jz50x18p1rba10gx2fqd4l29zri77nlm4qza5yrf61s68xby2zr2bygyc9r"; }
+    { type = "pom"; sha512 = "054v1p9h0141pahs52pg8wb0x4jghm5222yns6mf4dbc9gpy7x9j2b0z2lv9q3slx98378s4zakx4kbk5ca9ldlm8sz9y10fpqm35s6"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/repository-metadata.nix b/pkgs/development/java-modules/maven/repository-metadata.nix
new file mode 100644
index 000000000000..125788c54f92
--- /dev/null
+++ b/pkgs/development/java-modules/maven/repository-metadata.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenRepositoryMetadata_2_0_9 = map (obj: fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-repository-metadata";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2np435shcca1jka1gdjxs4bzzayfnfzncpnxhlfy59b32vfpvf5v0kca0zgyx7251ghhb2ks2xxd798rbzvr0gzivicwdrnd5x8g0hm"; }
+    { type = "pom"; sha512 = "27b9z80qdkn7p4fs6k87a5i926c3dsr6jmq4rz8dyiml1svqsvvghzz59cby6n8wkx7wn003wk28jzc08x53vbk5zsvcg9ckslxhjyw"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/settings.nix b/pkgs/development/java-modules/maven/settings.nix
new file mode 100644
index 000000000000..73d707144bdb
--- /dev/null
+++ b/pkgs/development/java-modules/maven/settings.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenSettings_2_0_9 = map (obj: fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-settings";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1hy1wz2bb7f9y0rr5961zhalpbwmk0fhw49k0l527w897lz4zw7lnb8xnx530s6hmn58zqj7iwkx4spz2fahps4ss1ryk0601rzgv4a"; }
+    { type = "pom"; sha512 = "3i2nq3r6piwhv265jhsj9hqriw6113vkqllx5s4kd4y2dspjxh6l9xprrw347nkw68904dyq9hdx76fx2nzjd16ldh41pim5lw8r15n"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/mavenPlugins.nix b/pkgs/development/java-modules/mavenPlugins.nix
new file mode 100644
index 000000000000..17d4c86ba995
--- /dev/null
+++ b/pkgs/development/java-modules/mavenPlugins.nix
@@ -0,0 +1,113 @@
+{ pkgs, stdenv, lib, maven, fetchurl }:
+
+with pkgs.javaPackages;
+
+let
+  mavenbuild = pkgs.callPackage ./build-maven-package.nix { };
+  fetchMaven = pkgs.callPackage ./m2install.nix { };
+  poms = import ./poms.nix { inherit fetchMaven; };
+in rec {
+  inherit mavenbuild fetchMaven poms;
+
+  # Standard plugins used by pretty much every Maven build
+  mavenDefault = lib.flatten [ aetherUtil_0_9_0_M2 bsh_2_0_b4 classworlds_1_1 commonsCli_1_0 commonsLang_2_3 mavenArtifact_2_0_9 mavenArtifact_3_0_3 mavenArtifactManager_2_0_9 mavenClean_2_5 mavenCommonArtifactFilters_1_4 mavenCompiler_3_1 mavenCore_2_0_9 mavenDependencyTree_2_1 mavenDoxiaSinkApi_1_0_alpha10 mavenEnforcer_1_3_1 mavenEnforcerApi_1_3_1 mavenEnforcerRules_1_3_1 mavenErrorDiagnostics_2_0_9 mavenInstall_2_4 mavenJar_2_4 mavenModel_2_0_9 mavenModel_3_0_3 mavenMonitor_2_0_9 mavenPluginApi_2_0_6 mavenPluginApi_2_0_9 mavenPluginApi_3_0_3 mavenPluginDescriptor_2_0_9 mavenPluginParameterDocumenter_2_0_9 mavenPluginRegistry_2_0_9 mavenProfile_2_0_9 mavenProject_2_0_9 mavenReplacer_1_5_3 mavenReportingApi_2_0_9 mavenRepositoryMetadata_2_0_9 mavenResources_2_6 mavenSettings_2_0_9 mavenSurefire_2_17 plexusComponentAnnotations_1_5_5 plexusContainerDefault_1_0_alpha9_stable1 plexusI18n_1_0_beta6 plexusInteractivityApi_1_0_alpha4 plexusUtils_1_5_8 plexusUtils_2_0_6 plexusUtils_3_0 ] ++ (with poms; [ aether_0_9_0_M2 animalSnifferParent_1_11 apache_10 apache_11 apache_13 apache_3 apache_4 apache_6 beanshell_2_0_b4 codehausParent_4 doxia_1_0_alpha10 doxia_1_0 enforcer_1_3_1 hamcrestParent_1_3 maven_2_0_6 maven_2_0_9 maven_3_0_3 mavenParent_15 mavenParent_21 mavenParent_22 mavenParent_23 mavenParent_5 mavenParent_6 mavenParent_8 mavenPlugins_22 mavenPlugins_23 mavenPlugins_24 mavenReporting_2_0_9 mavenSharedComponents_17 mavenSharedComponents_19 mojoParent_32 plexus_1_0_4 plexus_2_0_2 plexus_2_0_7 plexusComponents_1_1_4 plexusContainers_1_0_3 plexusContainers_1_5_5 sonatypeForgeParent_5 sonatypeParent_7 sonatypeSpiceParent_16 surefire_2_17 ]);
+
+  animalSniffer_1_11 = map (obj: fetchMaven {
+    version = "1.11";
+    baseName = "animal-sniffer-maven-plugin";
+    package = "/org/codehaus/mojo";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "224y5klr8pmm4g3k1qcqrbsjdng1nc9rfzlrk5x50q3d8pn0pj7jr1wg58997m217qimx4pwgcdbgl9niaw0xg136p76kd4hschbxda"; }
+    { type = "jar"; sha512 = "24dih4wp7p1rddvxcznlz42yxhqlln5ljdbvwnp75rsyf3ng25zv881ixk5qx8canr1lxx4kh22kwkaahz3qnw54fqn7w5z58m5768n"; }
+  ];
+
+  mavenClean_2_5 = map (obj: fetchMaven rec {
+    version = "2.5";
+    baseName = "maven-clean-plugin";
+    package = "/org/apache/maven/plugins";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "1dc1jd65pz1wl0hr89a8v4g8kd2hcixcdlpa102ffm03mmddc1862whbj9hppx3i3297rahrwl81cph3cdc866fbhbgaj7wld2649n7"; }
+    { type = "jar"; sha512 = "2fprppwpmzyvaynadm6slk382khlpf5s8sbi5x249qcaw2vkg5n77q79lgq981v9kjlr5wighjzpjqv8gdig45m2p37mcfwsy3jsv89"; }
+  ];
+
+  mavenCompiler_3_1 = map (obj: fetchMaven rec {
+    version = "3.1";
+    baseName = "maven-compiler-plugin";
+    package = "/org/apache/maven/plugins";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "1dqav3mb4ppg9l10qw04galjmf7yhlyzdna5ldpp3pmpsqglb8m2ab1q324ansz29dbp014w9c7na703jk7qzrja1ilxj0w71rpmsd5"; }
+    { type = "jar"; sha512 = "1dvq13yc8yacxr66pkvwwd4cvx0jln8dv9fh5gmd5vir05h8l5j4y324r1bklnzpx0ancs5ad8z944zgmpaq3w195kfsarmndp0gv2y"; }
+  ];
+
+  mavenEnforcer_1_3_1 = map (obj: fetchMaven rec {
+    version = "1.3.1";
+    baseName = "maven-enforcer-plugin";
+    package = "/org/apache/maven/plugins";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "0w47gx4ksksnl9siq954g2zvx8gx0qa6q5kp91qyyk88c65mfqjjm19613h3dhfmjq9f4rl8b1qhrq35gy7l90aplnibcimrpm6w6nk"; }
+    { type = "jar"; sha512 = "15sb9qmxgbq82nzc9x66152va121vf33nn0ah2g4z169cv6jnjq05gk1472k59imypvwsh9hd3hqi9q6g8d0sawgk5l1ax900cx7n25"; }
+  ];
+
+  mavenInstall_2_4 = map (obj: fetchMaven rec {
+    version = "2.4";
+    baseName = "maven-install-plugin";
+    package = "/org/apache/maven/plugins";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "1s5isapjz7mp9cl0jvk8nd1amrasdk257zbil76yabd1h89q4504y01482lxh7sp7x4mcqzj00i6517qcfdzf6w99cnd8dxwgkwqq06"; }
+    { type = "jar"; sha512 = "35hbj5hbz085y1dxfmza6m207kn68q2g1k5a9mc75i9pj8fww7xm7xzcdv81xyxjm3r4qbqf1izlg16l99b93rfii9rg8kqz8mxqmb6"; }
+  ];
+
+  mavenJar_2_4 = map (obj: fetchMaven rec {
+    version = "2.4";
+    baseName = "maven-jar-plugin";
+    package = "/org/apache/maven/plugins";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "12pj3lg7gf0c9hisasrks27b3a0ibvmlbgwbx7p1dcp0as40xwffrx57am7xpqv5bzwl5plh7xxd7s14yyvk8dybjhlj7shqmgn973r"; }
+    { type = "jar"; sha512 = "0frbikq8jm5pynlmv51k349kiaipd9jsrh6970313s0g6n4i0ws9vi232wc1mjrc3d27k63xqmb97jzgbbc6q337ypv5vil1ql9wh0d"; }
+  ];
+
+  mavenReplacer_1_5_3 = map (obj: fetchMaven rec {
+    version = "1.5.3";
+    baseName = "replacer";
+    package = "/com/google/code/maven-replacer-plugin";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "08vz72v426hd8bzpz2wd003r4kz7rn5syva5picppgwdj69q8xm4dj78mx39ywsgzv2x8jd3w3jpc23pgr07dqj5h2kyj44147lkhsp"; }
+    { type = "jar"; sha512 = "0f2rngcxpll0iigv115132fld5n6shjfn7m981sg7mdzlj75q2h5knd4x1ip33w60cm1j0rmqaxp1y6qn76ykvhprdyy9smiy667l9x"; }
+  ];
+
+  mavenResources_2_6 = map (obj: fetchMaven rec {
+    version = "2.6";
+    baseName = "maven-resources-plugin";
+    package = "/org/apache/maven/plugins";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "3rki0dhs3y7w9vbvwf2i7hmq9vismcfq79cdzd3qfs9bva4qxikx939idg8jmwnwaqww4q3wmgwg5vx3n910m8m2xr83x6y0dm62vbk"; }
+    { type = "jar"; sha512 = "3j8smsx6wk085iic5qhknrszixxna6szmvk2rn9zkn75ffjr7ham72hw9cmxf5160j73n8f2cmcbw1x462fqy12fqqpmzx08i1sbwcv"; }
+  ];
+
+  mavenSurefire_2_17 = map (obj: fetchMaven rec {
+    version = "2.17";
+    baseName = "maven-surefire-plugin";
+    package = "/org/apache/maven/plugins";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "367j67yy8jyq0k7ycnf9ixjy0rl2xb7cz0hwvh9rcbxkbr687bwam2gss0zdsr44q2ndk5hlcq56hhngp055194p90hkcvgr343ng6y"; }
+    { type = "jar"; sha512 = "3vhs3djga2ni3bsldn7jml8ya3vgvqaakiybj9y77q8z35xcnf34hsxkmlpm6mbyl5afcv2ij6syas0zppshqbp64ibx7bsqnfi0zbl"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/plexus/component-annotations.nix b/pkgs/development/java-modules/plexus/component-annotations.nix
new file mode 100644
index 000000000000..949238001bea
--- /dev/null
+++ b/pkgs/development/java-modules/plexus/component-annotations.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  plexusComponentAnnotations_1_5_5 = map (obj: fetchMaven {
+    version = "1.5.5";
+    baseName = "plexus-component-annotations";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2r0dzjs65hzllvm7kizis0lmx4sp3967c1918181y0isnlp1fsxg8sakb2qnfn748xnnxgh7h5fk04az999isd8qs1p85cgi2waz91f"; }
+    { type = "pom"; sha512 = "1yx9dl3mq8wx3w4ksq0z1x84kry1l1agdg3ssnbjwxlh96hjxki88j89iyfwbwwia40113b62r8168s0lhgzca3w7kbdii3kldgbz6y"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/plexus/container-default.nix b/pkgs/development/java-modules/plexus/container-default.nix
new file mode 100644
index 000000000000..a720c06a186c
--- /dev/null
+++ b/pkgs/development/java-modules/plexus/container-default.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  plexusContainerDefault_1_0_alpha9_stable1 = map (obj: fetchMaven {
+    version = "1.0-alpha-9-stable-1";
+    baseName = "plexus-container-default";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1dpzdijx7xb3kgv2ybias3shzvpsq82w6x1ig5gdkg0i47m6a1ld53bi3gjczdpn88xparp80jkqlacjb65764v05ps6zg0v3vr1dkw"; }
+    { type = "pom"; sha512 = "1gnm9ivwrkr3aqpnmdl34hkx53189wxj9acp2fms8inhznrxqcyyk355gpgzwvs9qpgdis1q88mj1fy3x1v3ffa3b6wi758p95q79jc"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/plexus/i18n.nix b/pkgs/development/java-modules/plexus/i18n.nix
new file mode 100644
index 000000000000..7af0cd17de8e
--- /dev/null
+++ b/pkgs/development/java-modules/plexus/i18n.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  plexusI18n_1_0_beta6 = map (obj: fetchMaven {
+    version = "1.0-beta-6";
+    baseName = "plexus-i18n";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "28j0h3qd2xpddcs9wxr30235a8l1jlqwj7mhbvdhqcn8ck2bbp7dx1bl9p8mzl1v6lgzqi12ga6lccs2axadmz0w7fscvzmfh2v8mvk"; }
+    { type = "pom"; sha512 = "1zv1v86vqzmk03mvl1i74wqk5s2b0wgr6qksdnjp7msmm8k27ilbgsdf9nf9wfc84s4kw4xwwkg954x192klwmv16kslc6xqjbxl2gk"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/plexus/interactivity-api.nix b/pkgs/development/java-modules/plexus/interactivity-api.nix
new file mode 100644
index 000000000000..9d62aec70f47
--- /dev/null
+++ b/pkgs/development/java-modules/plexus/interactivity-api.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  plexusInteractivityApi_1_0_alpha4 = map (obj: fetchMaven {
+    version = "1.0-alpha-4";
+    baseName = "plexus-interactivity-api";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2zy33hz2g0mgb2ryjbgjrf55bmmglkbsmh03wx29d4cwgcd83i1wb211c1wxdnnf7a8cx6ryfhx1fxwq379m4793apa9aix8px5sqj2"; }
+    { type = "pom"; sha512 = "27890lj546q9rapgzks8dkdc5d2lbsr1rgbhl9vxkr7hpqci0m2q6g7zpl94vk50hx4bb52p24j0x6dqsyd6ijnadbi1dysfnb6jm6f"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/plexus/utils.nix b/pkgs/development/java-modules/plexus/utils.nix
new file mode 100644
index 000000000000..672a43455c9a
--- /dev/null
+++ b/pkgs/development/java-modules/plexus/utils.nix
@@ -0,0 +1,47 @@
+{ fetchMaven }:
+
+rec {
+  plexusUtils_1_1 = map (obj: fetchMaven {
+    version = "1.1";
+    baseName = "plexus-utils";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "36k6grn4as4ka3diizwvybcfsn4spqqmqxvsaf66iq1zi2vxj3rsfr4xq6isv3p8f09wnnv9jm9xqqz4z0n3ah5mi8z1p5zhskcm5fs"; }
+    { type = "pom"; sha512 = "0vbzdfsdcc4cq7hdqzb1vdfxp23vnavq7z4qmmlb4d4fiqj5wqdgagrs43gl7yzca2azpyj3kyxgaipimi7gck07jcsz0pzljkplk4w"; }
+  ];
+
+  plexusUtils_1_5_8 = map (obj: fetchMaven {
+    version = "1.5.8";
+    baseName = "plexus-utils";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0nx0l29lmphylkmnacwj6n1spdxxaqn1jr5vg4pcil9y2p08bzyn715bhwgazg3sa94ynzi38lsmf60y00prv3cy2zgj0smg5psq3z5"; }
+    { type = "pom"; sha512 = "06z4gkq3bh2pwyj8pvaly9fihd8gbgcqp3jxl05vkj2rcdb4jw3lw3hwn8f8ggqi17i2fdm8cbndkqgr9vdgiz45p8f1nx8kjlqikbi"; }
+  ];
+
+  plexusUtils_2_0_6 = map (obj: fetchMaven {
+    version = "2.0.6";
+    baseName = "plexus-utils";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3n0g1xhjkjm0m3ch5wm34vxvldw889p401rlwqrlzm6nh53h36plq955v2vv30gjdgp7n54lpr4pb374fxz6wbzj385kphmsgxbsaxc"; }
+    { type = "pom"; sha512 = "22g2dlbgc557k126hd0nfaf6n76vwa19nnd0ga8ywdx5pnai63x9806d7dhvjm778rmgpxlrj65y8if36q0zkbg153i007cxg36indj"; }
+  ];
+
+  plexusUtils_3_0 = map (obj: fetchMaven {
+    version = "3.0";
+    baseName = "plexus-utils";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "16m1khf9fafb9f79rbz93qgc35d8605v1qbs4ywnj4sk00d00d6n1649cc9rv593r8ghwd0rkz345z7wb00fagdr9af5h8h5w5blsa1"; }
+    { type = "pom"; sha512 = "123fsmm1jvy571yl1s3wp7yd5k52nfjqxzqpzx2940rsigm35rw2mx1g4bvr3wx0gv5bqlfmqj5cwdhhxdq5vzrax8z5vbmdg5vb77r"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/poms.nix b/pkgs/development/java-modules/poms.nix
new file mode 100644
index 000000000000..39dc95281406
--- /dev/null
+++ b/pkgs/development/java-modules/poms.nix
@@ -0,0 +1,331 @@
+{ fetchMaven }:
+
+rec {
+  aether_0_9_0_M2 = fetchMaven {
+    version = "0.9.0.M2";
+    baseName = "aether";
+    package = "/org/eclipse/aether";
+    sha512 = "0ampl2jkkc1f5cbigmi1b5nnxhb9qqzz0nyfb5a2vzbw3ri7ry8dj6xgjznlpxib46zxgaxcsvhxq2yx6a9i8chnzvgghccwpl808yi";
+    type = "pom";
+  };
+
+  animalSnifferParent_1_11 = fetchMaven {
+    version = "1.11";
+    baseName = "animal-sniffer-parent";
+    package = "/org/codehaus/mojo";
+    sha512 = "3w9l3b4qxzmlwmaqppn1d794ycqf5piilv44fc74jccbgahdsq1as8dvyknnj2610yklwxx3146s7f0c3ms8y93alv02wybjwk5fd07";
+    type = "pom";
+  };
+
+  apache_3 = fetchMaven {
+    version = "3";
+    baseName = "apache";
+    package = "/org/apache";
+    sha512 = "3vvqxycj7zxa9dfxa6f8i2azdvxc7ci68fk3nlkjvhsglmwr39wf6cwgj6qqlrw3mabzs714lgz0wdacsidncadxzfw774ck20dq1rf";
+    type = "pom";
+  };
+
+  apache_4 = fetchMaven {
+    version = "4";
+    baseName = "apache";
+    package = "/org/apache";
+    sha512 = "3yb998i1azfxdjk2ndcc19gzx12i0bdi6jqwp5mhwp9ac5dfsplkb5np4bkpsb948y8kpvw1pyvkx8rw0a0rvkxqzxr98ng5nq80vw6";
+    type = "pom";
+  };
+
+  apache_6 = fetchMaven {
+    version = "6";
+    baseName = "apache";
+    package = "/org/apache";
+    sha512 = "2nvwk7fhiqcbr4vrwl0d3g4wz25vll24ga9kyc89fzq6b9nr6bqfphrm5a73kdih97l5cqlszw8xc847viw2ss1mwabn590f01ykhj0";
+    type = "pom";
+  };
+
+  apache_10 = fetchMaven {
+    version = "10";
+    baseName = "apache";
+    package = "/org/apache";
+    sha512 = "0kmva6f2q5rq7rk9ljwn3rxa4w2j7sjkxsmvambzqpj61cagdnq4vj9jk0xxx8448kqckdh5w2xkr5lr33sgfl67jy9l5h2s6h13v6m";
+    type = "pom";
+  };
+
+  apache_11 = fetchMaven {
+    version = "11";
+    baseName = "apache";
+    package = "/org/apache";
+    sha512 = "09v6sghdaxinrk3pnpnc36x24z62gqn65v25q83mc0q6n49l0xir55xk21qzc8kc6hrdr9khnr7jxkqz207cyv6wky6sy7c3pqg0na0";
+    type = "pom";
+  };
+
+  apache_13 = fetchMaven {
+    version = "13";
+    baseName = "apache";
+    package = "/org/apache";
+    sha512 = "0sf86l1457wwp8czg32xhh96l5nlw8v84lbi59nfdxxzcrsn8b1ysgwda3r1ck0d86c5gjmh3qg7kbwlrspwa71w9zn9sby3bszj99v";
+    type = "pom";
+  };
+
+  beanshell_2_0_b4 = fetchMaven {
+    version = "2.0b4";
+    baseName = "beanshell";
+    package = "/org/beanshell";
+    sha512 = "2xwgqmfwli40lvlgjx00ki5zm1290jhjvqg7wnq869kxkw9iam239zxb0jz46jcpbgy10qg6sd86cjw5g38njywcz33501f6byd0n3w";
+    type = "pom";
+  };
+
+  codehausParent_4 = fetchMaven {
+    version = "4";
+    baseName = "codehaus-parent";
+    package = "/org/codehaus";
+    sha512 = "11dacs4155xc3rn3crdayg1yp15abw81lbk6qwi7207009rnyk1kxvs56am9pllkybgja53ri0k084k2ppp4dlhxrg6w3zccbafxlgp";
+    type = "pom";
+  };
+
+  doxia_1_0_alpha10 = fetchMaven {
+    version = "1.0-alpha-10";
+    baseName = "doxia";
+    package = "/org/apache/maven/doxia";
+    sha512 = "3by91czdkjn4myc6xwzap37ydmhvic4myr8p2zflnpawrph00jkz9pivd84k2qykvmc5gxzbmklf1inwvkq1f5bsyhh440mlvsfsn1s";
+    type = "pom";
+  };
+
+  doxia_1_0 = fetchMaven {
+    version = "1.0";
+    baseName = "doxia";
+    package = "/org/apache/maven/doxia";
+    sha512 = "3z04h87dwn5panpr68ajzflw5n4wgi98isl5snz6vrd2vz9744fdqggmn6698wljw9h4pzkvjyrxf9b7w4km6w7kma28akvn951vw99";
+    type = "pom";
+  };
+
+  enforcer_1_3_1 = fetchMaven {
+    version = "1.3.1";
+    baseName = "enforcer";
+    package = "/org/apache/maven/enforcer";
+    sha512 = "1m84z5x2gxlbj9bl2jrfzh26pl7nz1d79sv72clp565z4lr2r1abih2c7aigbd95zik948dqrbh2vzm7vp1iv0d23vk89rx4nmfg0rv";
+    type = "pom";
+  };
+
+  hamcrestParent_1_3 = fetchMaven {
+    version = "1.3";
+    baseName = "hamcrest-parent";
+    package = "/org/hamcrest";
+    sha512 = "1da3ivp9n1h3hl35vhgd7avi4xh8p0802qj7xrk93gbz01s2av28p6ycdwiwp7kja0151wm5jvbgpnkxd8azqwkh7dh83w22k7jpwh3";
+    type = "pom";
+  };
+
+  maven_2_0_6 = fetchMaven {
+    version = "2.0.6";
+    baseName = "maven";
+    package = "/org/apache/maven";
+    sha512 = "2k58pvcrdc52zsq6id4vl8a45srxllm2m49namqkzix4356haphk3i06px9jcc2cmkqw7bcpqh5xvvmkds5vhp2b9y9b0i2lcfgx8jw";
+    type = "pom";
+  };
+
+  maven_2_0_9 = fetchMaven {
+    version = "2.0.9";
+    baseName = "maven";
+    package = "/org/apache/maven";
+    sha512 = "2b3wfqxbg0v2lm82a7nzw8wzw708isfrnzriy90bk89dhnj59qzpgvwrjbhs26a32gnpii5ivivh1msq51k1b7j5knmyf0hi1v0blw0";
+    type = "pom";
+  };
+
+  maven_3_0_3 = fetchMaven {
+    version = "3.0.3";
+    baseName = "maven";
+    package = "/org/apache/maven";
+    sha512 = "397qqkh9qd2aj346v4nvxrhaqz6k75l5xnm1xcqd0d4mmxg0p7jlz54yzkshqli2w5df9f7p8pavpkiw5xkl8ipxmp87vfcanvkx4x4";
+    type = "pom";
+  };
+
+  mavenParent_5 = fetchMaven {
+    version = "5";
+    baseName = "maven-parent";
+    package = "/org/apache/maven";
+    sha512 = "1810h5ziij9awpf2c6sgqlwd93dd3c54rxbnjxar97idw2zkmwqfxvxi74qjcpbqqam3ypxb893k3958jmhbrzmwhwbkhxyyiqgjsx0";
+    type = "pom";
+  };
+
+  mavenParent_6 = fetchMaven {
+    version = "6";
+    baseName = "maven-parent";
+    package = "/org/apache/maven";
+    sha512 = "2z9rkv875yx64mpbf1mgyb3hcxqbhr0ndczwqlmkgd05a679d4vyi92fndaz1bcfwc5bmmxf4s6zrg58swv05j2j9d6vqd2b0x385dq";
+    type = "pom";
+  };
+
+  mavenParent_8 = fetchMaven {
+    version = "8";
+    baseName = "maven-parent";
+    package = "/org/apache/maven";
+    sha512 = "315cgnn7mvwq5kyrln3nw85x3893zdd4dg267gk9xkig1mwjpa86l6yyd6qnrwxywcrgn0wmn2l781yvwip9rys4dd9jmbma2qhzapp";
+    type = "pom";
+  };
+
+  mavenParent_15 = fetchMaven {
+    version = "15";
+    baseName = "maven-parent";
+    package = "/org/apache/maven";
+    sha512 = "390z5v0nygsw075fa5jzl5baxb0bripiiy6arqk550zlg8dw8mcg6cyscwnh3zw4gxyr1qbcy0v8wsj375xc65i2agkzg1qbv5z6xxp";
+    type = "pom";
+  };
+
+  mavenParent_21 = fetchMaven {
+    version = "21";
+    baseName = "maven-parent";
+    package = "/org/apache/maven";
+    sha512 = "2dph51qjkmh9sixd12rgxhrvl3w5r7nmr4n3ra4y1lifml6h0md0indj3qw4lxm0db811p3hxf2f9l0gf6w4q5ypjp20lk9ia2xm5s0";
+    type = "pom";
+  };
+
+  mavenParent_22 = fetchMaven {
+    version = "22";
+    baseName = "maven-parent";
+    package = "/org/apache/maven";
+    sha512 = "112xv5inpan05vkm12g2lpz37pgga1nm8rar2bqhibvwljg4yv1myx8z99g0nkd3gzbgw5098aagm006w6bnmwsibwd1js8is5d4r88";
+    type = "pom";
+  };
+
+  mavenParent_23 = fetchMaven {
+    version = "23";
+    baseName = "maven-parent";
+    package = "/org/apache/maven";
+    sha512 = "3c6ydqi3sf5aq3aj42kxgrjpcf8wpl0rf6hmr6vkas04w0h4dyvjb78ipyxsqzqgzjm6cmdfhxzx8hjb2lwvy3ipf1x39j6cj7dwdy8";
+    type = "pom";
+  };
+
+  mavenPlugins_22 = fetchMaven {
+    version = "22";
+    baseName = "maven-plugins";
+    package = "/org/apache/maven/plugins";
+    sha512 = "14xy4s69dvqllkspc5b8q1gdbi0wn494ghwcdfcvjzvgczjhhxbr1h698amv3zmg59gb7liz77ws4vmcar8j9lazywcv13cy1myiywa";
+    type = "pom";
+  };
+
+  mavenPlugins_23 = fetchMaven {
+    version = "23";
+    baseName = "maven-plugins";
+    package = "/org/apache/maven/plugins";
+    sha512 = "1vh7izahb4sskja66hqrygv1r8iwpl97kp65yx6z3fnm761brag89fdcl4jl9hypvm57alf283gvq9rsy5kqnqcdki20k5vw26y1b1a";
+    type = "pom";
+  };
+
+  mavenPlugins_24 = fetchMaven {
+    version = "24";
+    baseName = "maven-plugins";
+    package = "/org/apache/maven/plugins";
+    sha512 = "07flf37pkkc34466bnzi4rfwdlgvd3ydasm39qzy2hybxv26306zrhipglmgsjvd84z07dscij4n7qdd2jkx9hrkm900hid4xwvxzrs";
+    type = "pom";
+  };
+
+  mavenReporting_2_0_9 = fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-reporting";
+    package = "/org/apache/maven/reporting";
+    sha512 = "0cg49pq6rvk7c84xwnpq2p47b7y973sy9qfgzcq06bnrqm6cj26h8k7d9kpp3q3rd2hlw10db4sjfx0crlai27cbbz41i5m22lq21s5";
+    type = "pom";
+  };
+
+  mavenSharedComponents_17 = fetchMaven {
+    version = "17";
+    baseName = "maven-shared-components";
+    package = "/org/apache/maven/shared";
+    sha512 = "3f2pifiapx09h3wv9lglm0mkd9gid268lfz27jhqb4ck2yxna31872db7cj5c9lsg0pl2l3bwgp526whq14zj2qffqxrdq8mn9m0rhy";
+    type = "pom";
+  };
+
+  mavenSharedComponents_19 = fetchMaven {
+    version = "19";
+    baseName = "maven-shared-components";
+    package = "/org/apache/maven/shared";
+    sha512 = "1na6rh2mlwq6yrg7jxxnkcjj4ki0lqcihwiq2cy2ygsd6q0z8fn755frrd1j1jvd5dnh8jxjqp1m5mpwwv13hxhy8lmq95a5pp2a2qh";
+    type = "pom";
+  };
+
+  mojoParent_32 = fetchMaven {
+    version = "32";
+    baseName = "mojo-parent";
+    package = "/org/codehaus/mojo";
+    sha512 = "15pzaqpdcr8c2w2b2ms3qc5d3r0flmzqav6h45nmg1l8nv7529lp6dkilhkwqag1i94vh8dvqnkxm475j9v2hxmz981azrvz7984z8w";
+    type = "pom";
+  };
+
+  plexus_1_0_4 = fetchMaven {
+    version = "1.0.4";
+    baseName = "plexus";
+    package = "/org/codehaus/plexus";
+    sha512 = "22zsqss9aws73zvgqaz1brnvhk8bqn0flzd644nikprbb9dh1jyv1jig7xaxj942wq1w8h6ybx6b3v1ysfr8kw1z70sb5yrb4zd4kkm";
+    type = "pom";
+  };
+
+  plexus_2_0_2 = fetchMaven {
+    version = "2.0.2";
+    baseName = "plexus";
+    package = "/org/codehaus/plexus";
+    sha512 = "095kxnh9238wlnxsbsl7wj3zsp2ijwx8p8bvbmsvj3iacw9fsvddv263j485zfjf4ipvp5dwqc3sc8mqkwbhx1qj7k1x1hj14nl6r8z";
+    type = "pom";
+  };
+
+  plexus_2_0_7 = fetchMaven {
+    version = "2.0.7";
+    baseName = "plexus";
+    package = "/org/codehaus/plexus";
+    sha512 = "2ddbjp60y8g7n56hya5qa59f980a8sdj0d1dicv3na3pbc6k4wgdrix78lgg32sp4fzmxl7fyzw9gy3z2vpzf65zkj3c9yh030jcysr";
+    type = "pom";
+  };
+
+  plexusComponents_1_1_4 = fetchMaven {
+    version = "1.1.4";
+    baseName = "plexus-components";
+    package = "/org/codehaus/plexus";
+    sha512 = "02kdl9z8nz26h4qf9mrdm8s1y2gy1f57n825yy0y3qifavlv51k2yxza7mjsdl1dwrq84c4qlj79iqlisnhrppfy0ncbbblnbir1yln";
+    type = "pom";
+  };
+
+  plexusContainers_1_0_3 = fetchMaven {
+    version = "1.0.3";
+    baseName = "plexus-containers";
+    package = "/org/codehaus/plexus";
+    sha512 = "39sw2lxlrgbj1zlf67qz14j53sxd45p1qmna5cfizqikrwiqrnb6xwdxr2rsp3h2kadwwpz6id2ls6x3hr93znkad404rg4lg11v9nj";
+    type = "pom";
+  };
+
+  plexusContainers_1_5_5 = fetchMaven {
+    version = "1.5.5";
+    baseName = "plexus-containers";
+    package = "/org/codehaus/plexus";
+    sha512 = "1dzg3ry73scisq02p1c96rn04rvdpyf9v6cbvvmy6hvcaw11y8mmjwjnlayljhr9za5hhq5bwv2vssmp683v3qjr5750f9aa62jxw0w";
+    type = "pom";
+  };
+
+  sonatypeForgeParent_5 = fetchMaven {
+    version = "5";
+    baseName = "forge-parent";
+    package = "/org/sonatype/forge";
+    sha512 = "1l3nll0i5cpf2rh5f4gqriwy2737n9sccr605nx1swn1qafbxbvvs4jl7argdzz0mkzrr8sir7vnksm9a273vrdica9l35nxivm6vrx";
+    type = "pom";
+  };
+
+  sonatypeParent_7 = fetchMaven {
+    version = "7";
+    baseName = "oss-parent";
+    package = "/org/sonatype/oss";
+    sha512 = "3xk0q7y2kdarr3l42dqjzq9qz1r840abqw9zhvl4gpc8jw5xcbqd781fp8z41i3hrkyaf740f2kppji9l77ci7f759d5s9yg4grbc33";
+    type = "pom";
+  };
+
+  sonatypeSpiceParent_16 = fetchMaven {
+    version = "16";
+    baseName = "spice-parent";
+    package = "/org/sonatype/spice";
+    sha512 = "0awfi8vf4xc5c9510sas7xqlik4g8ljivay372cksvlcwlgyrgliikak0xxbxj72df5b9jzc9fzvjxd9rlllnnlnm4zllw5p2hakb0g";
+    type = "pom";
+  };
+
+  surefire_2_17 = fetchMaven {
+    version = "2.17";
+    baseName = "surefire";
+    package = "/org/apache/maven/surefire";
+    sha512 = "3yraw37xwayyrvwa62y6li3wbzrha08j389psz16j1dawxmg78zlm2x1jmgz3nzdb60n9kk143606bgs3vrf7ri9d5pwkg9lvw7hk92";
+    type = "pom";
+  };
+}
diff --git a/pkgs/top-level/java-packages.nix b/pkgs/top-level/java-packages.nix
new file mode 100644
index 000000000000..760dd01e7324
--- /dev/null
+++ b/pkgs/top-level/java-packages.nix
@@ -0,0 +1,113 @@
+{ pkgs, stdenv, maven }:
+
+with pkgs;
+
+let
+  mavenbuild = callPackage ../development/java-modules/build-maven-package.nix { };
+  fetchMaven = callPackage ../development/java-modules/m2install.nix { };
+in {
+  inherit mavenbuild fetchMaven;
+
+  mavenPlugins = recurseIntoAttrs (callPackage ../development/java-modules/mavenPlugins.nix { });
+
+  inherit (callPackage ../development/java-modules/eclipse/aether-util.nix { inherit fetchMaven; })
+    aetherUtil_0_9_0_M2;
+
+  inherit (callPackage ../development/java-modules/beanshell/bsh.nix { inherit fetchMaven; })
+    bsh_2_0_b4;
+
+  inherit (callPackage ../development/java-modules/classworlds/classworlds.nix { inherit fetchMaven; })
+    classworlds_1_1;
+
+  inherit (callPackage ../development/java-modules/apache/commons-cli.nix { inherit fetchMaven; })
+    commonsCli_1_0;
+
+  inherit (callPackage ../development/java-modules/apache/commons-lang.nix { inherit fetchMaven; })
+    commonsLang_2_3;
+
+  inherit (callPackage ../development/java-modules/hamcrest/core.nix { inherit fetchMaven; })
+    hamcrestCore_1_3;
+
+  inherit (callPackage ../development/java-modules/junit { inherit mavenbuild; })
+    junit_4_12;
+
+  inherit (callPackage ../development/java-modules/maven/artifact.nix { inherit fetchMaven; })
+    mavenArtifact_2_0_9
+    mavenArtifact_3_0_3;
+
+  inherit (callPackage ../development/java-modules/maven/artifact-manager.nix { inherit fetchMaven; })
+    mavenArtifactManager_2_0_9;
+
+  inherit (callPackage ../development/java-modules/maven/common-artifact-filters.nix { inherit fetchMaven; })
+    mavenCommonArtifactFilters_1_4;
+
+  inherit (callPackage ../development/java-modules/maven/core.nix { inherit fetchMaven; })
+    mavenCore_2_0_9;
+
+  inherit (callPackage ../development/java-modules/maven/dependency-tree.nix { inherit fetchMaven; })
+    mavenDependencyTree_2_1;
+
+  inherit (callPackage ../development/java-modules/maven/doxia-sink-api.nix { inherit fetchMaven; })
+    mavenDoxiaSinkApi_1_0_alpha10;
+
+  inherit (callPackage ../development/java-modules/maven/enforcer.nix { inherit fetchMaven; })
+    mavenEnforcerApi_1_3_1
+    mavenEnforcerRules_1_3_1;
+
+  inherit (callPackage ../development/java-modules/maven/error-diagnostics.nix { inherit fetchMaven; })
+    mavenErrorDiagnostics_2_0_9;
+
+  inherit (callPackage ../development/java-modules/maven/model.nix { inherit fetchMaven; })
+    mavenModel_2_0_9
+    mavenModel_3_0_3;
+
+  inherit (callPackage ../development/java-modules/maven/monitor.nix { inherit fetchMaven; })
+    mavenMonitor_2_0_9;
+
+  inherit (callPackage ../development/java-modules/maven/plugin-api.nix { inherit fetchMaven; })
+    mavenPluginApi_2_0_6
+    mavenPluginApi_2_0_9
+    mavenPluginApi_3_0_3;
+
+  inherit (callPackage ../development/java-modules/maven/plugin-descriptor.nix { inherit fetchMaven; })
+    mavenPluginDescriptor_2_0_9;
+
+  inherit (callPackage ../development/java-modules/maven/plugin-parameter-documenter.nix { inherit fetchMaven; })
+    mavenPluginParameterDocumenter_2_0_9;
+
+  inherit (callPackage ../development/java-modules/maven/plugin-registry.nix { inherit fetchMaven; })
+    mavenPluginRegistry_2_0_9;
+
+  inherit (callPackage ../development/java-modules/maven/profile.nix { inherit fetchMaven; })
+    mavenProfile_2_0_9;
+
+  inherit (callPackage ../development/java-modules/maven/project.nix { inherit fetchMaven; })
+    mavenProject_2_0_9;
+
+  inherit (callPackage ../development/java-modules/maven/reporting-api.nix { inherit fetchMaven; })
+    mavenReportingApi_2_0_9;
+
+  inherit (callPackage ../development/java-modules/maven/repository-metadata.nix { inherit fetchMaven; })
+    mavenRepositoryMetadata_2_0_9;
+
+  inherit (callPackage ../development/java-modules/maven/settings.nix { inherit fetchMaven; })
+    mavenSettings_2_0_9;
+
+  inherit (callPackage ../development/java-modules/plexus/component-annotations.nix { inherit fetchMaven; })
+    plexusComponentAnnotations_1_5_5;
+
+  inherit (callPackage ../development/java-modules/plexus/container-default.nix { inherit fetchMaven; })
+    plexusContainerDefault_1_0_alpha9_stable1;
+
+  inherit (callPackage ../development/java-modules/plexus/i18n.nix { inherit fetchMaven; })
+    plexusI18n_1_0_beta6;
+
+  inherit (callPackage ../development/java-modules/plexus/interactivity-api.nix { inherit fetchMaven; })
+    plexusInteractivityApi_1_0_alpha4;
+
+  inherit (callPackage ../development/java-modules/plexus/utils.nix { inherit fetchMaven; })
+    plexusUtils_1_1
+    plexusUtils_1_5_8
+    plexusUtils_2_0_6
+    plexusUtils_3_0;
+}

From 38e762c6d1f145cf5a2eecec17f1db0c27ddc3a4 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Mon, 31 Oct 2016 09:38:28 -0400
Subject: [PATCH 03/10] Partial maven-hello

---
 .../java-modules/build-maven-package.nix      |   4 +-
 .../java-modules/findbugs/jsr305.nix          |  15 ++
 .../java-modules/junit/default.nix            |  15 +-
 .../java-modules/maven-hello/default.nix      |  33 ++++
 .../java-modules/maven/archiver.nix           |  14 ++
 .../java-modules/maven/artifact-manager.nix   |  22 +++
 .../java-modules/maven/artifact.nix           |  11 ++
 .../maven/common-artifact-filters.nix         |  11 ++
 pkgs/development/java-modules/maven/core.nix  |  22 +++
 .../java-modules/maven/doxia-sink-api.nix     |  11 ++
 .../java-modules/maven/error-diagnostics.nix  |  22 +++
 .../java-modules/maven/filtering.nix          |  14 ++
 pkgs/development/java-modules/maven/model.nix |  22 +++
 .../java-modules/maven/monitor.nix            |  22 +++
 .../java-modules/maven/plugin-annotations.nix |  14 ++
 .../java-modules/maven/plugin-api.nix         |  11 ++
 .../java-modules/maven/plugin-descriptor.nix  |  22 +++
 .../maven/plugin-parameter-documenter.nix     |  22 +++
 .../java-modules/maven/plugin-registry.nix    |  22 +++
 .../java-modules/maven/profile.nix            |  22 +++
 .../java-modules/maven/project.nix            |  11 ++
 .../java-modules/maven/reporting-api.nix      |  11 ++
 .../maven/repository-metadata.nix             |  22 +++
 .../java-modules/maven/settings.nix           |  22 +++
 .../java-modules/maven/shared-incremental.nix |  14 ++
 .../java-modules/maven/shared-utils.nix       |  14 ++
 .../java-modules/maven/surefire-api.nix       |  14 ++
 .../java-modules/maven/surefire-booter.nix    |  14 ++
 .../java-modules/maven/surefire-common.nix    |  14 ++
 .../java-modules/maven/toolchain.nix          |  25 +++
 .../development/java-modules/mavenPlugins.nix | 141 ++++++++++++++-
 .../java-modules/plexus/build-api.nix         |  14 ++
 .../java-modules/plexus/compiler-api.nix      |  14 ++
 .../java-modules/plexus/interpolation.nix     |  14 ++
 .../development/java-modules/plexus/utils.nix |  22 +++
 pkgs/development/java-modules/poms.nix        | 160 ++++++++++++++++++
 pkgs/top-level/java-packages.nix              |  96 +++++++++--
 37 files changed, 956 insertions(+), 17 deletions(-)
 create mode 100644 pkgs/development/java-modules/findbugs/jsr305.nix
 create mode 100644 pkgs/development/java-modules/maven-hello/default.nix
 create mode 100644 pkgs/development/java-modules/maven/archiver.nix
 create mode 100644 pkgs/development/java-modules/maven/filtering.nix
 create mode 100644 pkgs/development/java-modules/maven/plugin-annotations.nix
 create mode 100644 pkgs/development/java-modules/maven/shared-incremental.nix
 create mode 100644 pkgs/development/java-modules/maven/shared-utils.nix
 create mode 100644 pkgs/development/java-modules/maven/surefire-api.nix
 create mode 100644 pkgs/development/java-modules/maven/surefire-booter.nix
 create mode 100644 pkgs/development/java-modules/maven/surefire-common.nix
 create mode 100644 pkgs/development/java-modules/maven/toolchain.nix
 create mode 100644 pkgs/development/java-modules/plexus/build-api.nix
 create mode 100644 pkgs/development/java-modules/plexus/compiler-api.nix
 create mode 100644 pkgs/development/java-modules/plexus/interpolation.nix

diff --git a/pkgs/development/java-modules/build-maven-package.nix b/pkgs/development/java-modules/build-maven-package.nix
index 182740c552d8..499a48b22281 100644
--- a/pkgs/development/java-modules/build-maven-package.nix
+++ b/pkgs/development/java-modules/build-maven-package.nix
@@ -1,4 +1,4 @@
-{ stdenv, maven, lib }:
+{ stdenv, maven, lib, pkgs }:
 { mavenDeps, src, name, meta, m2Path, ... }:
 
 with builtins;
@@ -7,7 +7,7 @@ with lib;
 stdenv.mkDerivation rec {
   inherit mavenDeps src name meta m2Path;
 
-  flatDeps = flatten mavenDeps;
+  flatDeps = unique (flatten (mavenDeps ++ pkgs.javaPackages.mavenPlugins.mavenMinimal));
 
   propagatedBuildInput = [ maven ] ++ flatDeps;
 
diff --git a/pkgs/development/java-modules/findbugs/jsr305.nix b/pkgs/development/java-modules/findbugs/jsr305.nix
new file mode 100644
index 000000000000..466ce2476330
--- /dev/null
+++ b/pkgs/development/java-modules/findbugs/jsr305.nix
@@ -0,0 +1,15 @@
+{ fetchMaven }:
+
+rec {
+  findbugsJsr305_2_0_1 = map (obj: fetchMaven {
+    version = "2.0.1";
+    baseName = "jsr305";
+    package = "/com/google/code/findbugs";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "33flq50603n496c90981a0gsv30pgk6cnf859vdj6c8n4iq973prq847z5q8ld64j3rdmakxy9rsp49w7pddfd0v0i9n97rkr435f5k"; }
+    { type = "pom"; sha512 = "2iavm6d9nmy4g2i6y7q4l68bpjpncng1qfhbxdj44l3nqi7ixcjw0y38ymial7g2z0r1kd9qydr5lawjspr0fbzpjkcln2q7gsf0hfw"; }
+  ];
+}
+
diff --git a/pkgs/development/java-modules/junit/default.nix b/pkgs/development/java-modules/junit/default.nix
index 7325b07700fe..ebb614bb703e 100644
--- a/pkgs/development/java-modules/junit/default.nix
+++ b/pkgs/development/java-modules/junit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, pkgs, mavenbuild }:
+{ stdenv, pkgs, mavenbuild, fetchMaven }:
 
 with pkgs.javaPackages;
 
@@ -25,8 +25,19 @@ rec {
     };
   };
 
+  junit_3_8_1 = map (obj: fetchMaven {
+    version = "3.8.1";
+    baseName = "junit";
+    package = "/junit";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "2b368057s8i61il387fqvznn70r9ndm815r681fn9i5afs1qgkw7i1d6vsn3pv2bbif1kmhb7qzcc574m3xcwc8a2mqw44b4bbxsfyl"; }
+    { type = "jar"; sha512 = "25yk0lzwk46r867nhrw4hg7cvz28wb8ln9nw1dqrb6zarifl54p4h1mcz90vmih405bsk96g0qb6hn1h4df0fas3f5kma9vxfjryvwf"; }
+  ];
+
   junit_4_12 = junitGen {
-    mavenDeps = [ mavenPlugins.animalSniffer_1_11 hamcrestCore_1_3 plexusUtils_1_1 ] ++ mavenPlugins.mavenDefault;
+    mavenDeps = [ mavenPlugins.animalSniffer_1_11 hamcrestCore_1_3 plexusUtils_1_1 ];
     sha512 = "0bbldnf37jl855s1pdx2a518ivfifv75189vsbpylnj8530vnf8z6b2dglkcbcjgr22lp1s4m1nnplz5dmka9sr7vj055p88k27kqw9";
     version = "4.12";
   };
diff --git a/pkgs/development/java-modules/maven-hello/default.nix b/pkgs/development/java-modules/maven-hello/default.nix
new file mode 100644
index 000000000000..feb3146ffd61
--- /dev/null
+++ b/pkgs/development/java-modules/maven-hello/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, pkgs, mavenbuild }:
+
+with pkgs.javaPackages;
+
+rec {
+  mavenHelloRec = { mavenDeps, sha512, version }: mavenbuild rec {
+    inherit mavenDeps sha512 version;
+
+    name = "maven-hello-${version}";
+    src = pkgs.fetchFromGitHub {
+      inherit sha512;
+      owner = "NeQuissimus";
+      repo = "maven-hello";
+      rev = "v${version}";
+    };
+    m2Path = "/com/nequissimus/maven-hello/${version}";
+
+    meta = {
+      homepage = http://github.com/NeQuissimus/maven-hello/;
+      description = "Maven Hello World";
+      license = stdenv.lib.licenses.unlicense;
+      platforms = stdenv.lib.platforms.all;
+      maintainers = with stdenv.lib.maintainers;
+        [ nequissimus ];
+    };
+  };
+
+  mavenHello_1_0 = mavenHelloRec {
+    mavenDeps = [];
+    sha512 = "3kv5z1i02wfb0l5x3phbsk3qb3wky05sqn4v3y4cx56slqfp9z8j76vnh8v45ydgskwl2vs9xjx6ai8991mzb5ikvl3vdgmrj1j17p2";
+    version = "1.0";
+  };
+}
diff --git a/pkgs/development/java-modules/maven/archiver.nix b/pkgs/development/java-modules/maven/archiver.nix
new file mode 100644
index 000000000000..790e7894bff1
--- /dev/null
+++ b/pkgs/development/java-modules/maven/archiver.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenArchiver_2_5 = map (obj: fetchMaven {
+    version = "2.5";
+    baseName = "maven-archiver";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3kkv5kf3k5in69aplawkr0cr2cviyjgf8k6r6qvgxk53i3jmh7qylzrwkrd9bxclkjkgyg77cffxm48qhxm9pyqncdbwjldsmmdfb4f"; }
+    { type = "pom"; sha512 = "37kvfxcpfajjn9lmvh5kay4y61ri1190hxxgiil8fqfvmvcm02jcqzfi4ry0nzc80g5fsarsd3s2ns2d8l0lnqjp28nn51dixm9a55w"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/artifact-manager.nix b/pkgs/development/java-modules/maven/artifact-manager.nix
index b46fb254b173..7f0a9226e877 100644
--- a/pkgs/development/java-modules/maven/artifact-manager.nix
+++ b/pkgs/development/java-modules/maven/artifact-manager.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenArtifactManager_2_0_6 = map (obj: fetchMaven {
+    version = "2.0.6";
+    baseName = "maven-artifact-manager";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1alp2iahaaf39yd3xp8817sz93nhz53flkkv5dx87vybsizpykb1g7jn6bnx0cbqqr9k5pi27z8mbkmry05vwqc6jyic1pyvzy1y3vn"; }
+    { type = "pom"; sha512 = "3pvj8gpcg57akalj4574k4mzw2skgm0w69bdvh0ivyd8skgdrf5gwxf57hl5rbgsdpr82m2za7yvi63fw82k7v84sib904fs639r3pf"; }
+  ];
+
   mavenArtifactManager_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
     baseName = "maven-artifact-manager";
@@ -11,4 +22,15 @@ rec {
     { type = "jar"; sha512 = "1vvxf2dannx9p2qvlbmrxfni5mc0f3722p3bcdz6bk3z4dhb2hlw2wx17nvirq5r3k43azgp13mg0638saz7v1g23f07n9yzm979f0p"; }
     { type = "pom"; sha512 = "2v7371gsarjb4s2bp5vclqgdg82mh7nzy7af31g9z20q2r6ndw024xa8bpcxp227yv83lpawbhq0ysg0glnw9ql54100h9hbllam0p8"; }
   ];
+
+  mavenArtifactManager_2_2_1 = map (obj: fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-artifact-manager";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1vvxf2dannx9p2qvlbmrxfni5mc0f3722p3bcdz6bk3z4dhb2hlw2wx17nvirq5r3k43azgp13mg0638saz7v1g23f07n9yzm979f0p"; }
+    { type = "pom"; sha512 = "2v7371gsarjb4s2bp5vclqgdg82mh7nzy7af31g9z20q2r6ndw024xa8bpcxp227yv83lpawbhq0ysg0glnw9ql54100h9hbllam0p8"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/maven/artifact.nix b/pkgs/development/java-modules/maven/artifact.nix
index d0b528b916ae..12876f53d5ae 100644
--- a/pkgs/development/java-modules/maven/artifact.nix
+++ b/pkgs/development/java-modules/maven/artifact.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenArtifact_2_0_6 = map (obj: fetchMaven {
+    version = "2.0.6";
+    baseName = "maven-artifact";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3kkv5kf3k5in69aplawkr0cr2cviyjgf8k6r6qvgxk53i3jmh7qylzrwkrd9bxclkjkgyg77cffxm48qhxm9pyqncdbwjldsmmdfb4f"; }
+    { type = "pom"; sha512 = "37kvfxcpfajjn9lmvh5kay4y61ri1190hxxgiil8fqfvmvcm02jcqzfi4ry0nzc80g5fsarsd3s2ns2d8l0lnqjp28nn51dixm9a55w"; }
+  ];
+
   mavenArtifact_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
     baseName = "maven-artifact";
diff --git a/pkgs/development/java-modules/maven/common-artifact-filters.nix b/pkgs/development/java-modules/maven/common-artifact-filters.nix
index 4d46de674b55..e0ee7e6a59ed 100644
--- a/pkgs/development/java-modules/maven/common-artifact-filters.nix
+++ b/pkgs/development/java-modules/maven/common-artifact-filters.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenCommonArtifactFilters_1_3 = map (obj: fetchMaven {
+    version = "1.3";
+    baseName = "maven-common-artifact-filters";
+    package = "/org/apache/maven/shared";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "21wyk4llwjyanlggy281f9n0sjshjqvd322lbhxmzn42cd9vmj0s6xih82jwqlkcxkypwymyj1gl7van55ibd98p1jjjvr93gs1cn14"; }
+    { type = "jar"; sha512 = "1bv4lp1a8sb79almnygiq0pmm0fdhy9pyakp6xhz91b4v1cqg03sb586yc4lg2934yv4jjbybqjbh4l0y3kgnanjbxdxdgxgyf14iif"; }
+  ];
+
   mavenCommonArtifactFilters_1_4 = map (obj: fetchMaven {
     version = "1.4";
     baseName = "maven-common-artifact-filters";
diff --git a/pkgs/development/java-modules/maven/core.nix b/pkgs/development/java-modules/maven/core.nix
index 6aed7095ad25..7f186503d31b 100644
--- a/pkgs/development/java-modules/maven/core.nix
+++ b/pkgs/development/java-modules/maven/core.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenCore_2_0_6 = map (obj: fetchMaven {
+    version = "2.0.6";
+    baseName = "maven-core";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "2q4s5y8bpa73a10r4m9qgzfsczcap147p5gcc9inm5fx9x32sbr7zqw6xj7igsyjb9qsqpp3v727xv3ng57gczdqs1dazljqrgk9jal"; }
+    { type = "jar"; sha512 = "2ar2qvhig92gifm4zhd7mzcm0c7cnlyvd3d089a7chlvxhrxyhf08xxpd8sxa525sa413v2d762yx2mbhnkf564i1zw4gg7cdjl5z47"; }
+  ];
+
   mavenCore_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
     baseName = "maven-core";
@@ -11,4 +22,15 @@ rec {
     { type = "pom"; sha512 = "1a17qcd05v08jpd9ah650kbmrdxrxjfl2jgx9fnc89x4ahzmml9fr2qal0pwnn0sw3g3j1cqbry9lwq5hzja6x779s90hqrb72s49l1"; }
     { type = "jar"; sha512 = "0qp0kns07h4j7d67z0j09kjn0hwf6k6iz4vp2pmisx131f98acm516y8ca35ly7pp6zn9mdk3c4nh9c0rd7xnqvi12ijqrfvg01dri2"; }
   ];
+
+  mavenCore_2_2_1 = map (obj: fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-core";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "1a17qcd05v08jpd9ah650kbmrdxrxjfl2jgx9fnc89x4ahzmml9fr2qal0pwnn0sw3g3j1cqbry9lwq5hzja6x779s90hqrb72s49l1"; }
+    { type = "jar"; sha512 = "0qp0kns07h4j7d67z0j09kjn0hwf6k6iz4vp2pmisx131f98acm516y8ca35ly7pp6zn9mdk3c4nh9c0rd7xnqvi12ijqrfvg01dri2"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/maven/doxia-sink-api.nix b/pkgs/development/java-modules/maven/doxia-sink-api.nix
index 6acf39b480d7..7454f7bbc969 100644
--- a/pkgs/development/java-modules/maven/doxia-sink-api.nix
+++ b/pkgs/development/java-modules/maven/doxia-sink-api.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenDoxiaSinkApi_1_0_alpha7 = map (obj: fetchMaven {
+    version = "1.0-alpha-7";
+    baseName = "doxia-sink-api";
+    package = "/org/apache/maven/doxia";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "3lb710zyldqysy19cgsan6mb5yrxx07vphddasq4kv1z9p5l4mpx9jq8fdhcxm4bgrfpdxkrdy2z4h2w8kc3gp2dk5g515x854jhqar"; }
+    { type = "jar"; sha512 = "0q2vn7yyl8qvsifb629jh3hmaa5pkj5y22zy7qbji1xmn28qp0n1skfvlmpn0m8djwzmayw6xjbxhxvspzc9a14n3nkmjzmr5yz053a"; }
+  ];
+
   mavenDoxiaSinkApi_1_0_alpha10 = map (obj: fetchMaven {
     version = "1.0-alpha-10";
     baseName = "doxia-sink-api";
diff --git a/pkgs/development/java-modules/maven/error-diagnostics.nix b/pkgs/development/java-modules/maven/error-diagnostics.nix
index 22ac264bdd10..c8993f1f0c9c 100644
--- a/pkgs/development/java-modules/maven/error-diagnostics.nix
+++ b/pkgs/development/java-modules/maven/error-diagnostics.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenErrorDiagnostics_2_0_6 = map (obj: fetchMaven {
+    version = "2.0.6";
+    baseName = "maven-error-diagnostics";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2rpzlgi1hyiq1qmfn9fdr3317mq990y67zb0jvyah7sgr5x969l984cfigwdcw0m7i4kpg5157myq4cps3d9pz81h4wx4plwwpkyp2v"; }
+    { type = "pom"; sha512 = "3r8r5sw3zbyms1yk1811cxh2a6p86lhg8aa9b6whn97mx3gmy9zy2nhsadgnxw1hbc2y6l1pk3xs2q73hmvag1bapks5bm7higmgdpg"; }
+  ];
+
   mavenErrorDiagnostics_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
     baseName = "maven-error-diagnostics";
@@ -11,4 +22,15 @@ rec {
     { type = "jar"; sha512 = "3czdrv2s1gafclm57m5qxw3aaxrm3r3z9yggscxg60fk0hn6jlpygclghkrl2g7c8ggdqdd01y6zcj1wgzq32yp1cd4s3kakf2y25dm"; }
     { type = "pom"; sha512 = "3l0cpg0ssivfnadffc68cnac65vpfpl0qa9a4ik82jxcwhfa00337jxz37vyqaqs1vjrvd2cqhmjayddwkpwc8aqnz3nr0rlqnqzm7g"; }
   ];
+
+  mavenErrorDiagnostics_2_2_1 = map (obj: fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-error-diagnostics";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3czdrv2s1gafclm57m5qxw3aaxrm3r3z9yggscxg60fk0hn6jlpygclghkrl2g7c8ggdqdd01y6zcj1wgzq32yp1cd4s3kakf2y25dm"; }
+    { type = "pom"; sha512 = "3l0cpg0ssivfnadffc68cnac65vpfpl0qa9a4ik82jxcwhfa00337jxz37vyqaqs1vjrvd2cqhmjayddwkpwc8aqnz3nr0rlqnqzm7g"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/maven/filtering.nix b/pkgs/development/java-modules/maven/filtering.nix
new file mode 100644
index 000000000000..5851a3db195d
--- /dev/null
+++ b/pkgs/development/java-modules/maven/filtering.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenFiltering_1_1 = map (obj: fetchMaven {
+    version = "1.1";
+    baseName = "maven-filtering";
+    package = "/org/apache/maven/shared";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "022n451vgprms5rp26iynlg7yn7p1l71d5sd5r177dmw0250pvrr5gvjrriq8fis2rxbdhr42zl1xm2mmzlg6sj55izzy03dwryhydn"; }
+    { type = "jar"; sha512 = "33ing5r916n71skj75cikhrapns28l6ryxw9q3yn5hyqzsbj2yk7lzss87ardg9j3wkmb4rpj9mkb63w0fljwjfpbja6qmzxrybj5rp"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/model.nix b/pkgs/development/java-modules/maven/model.nix
index fa3abf7c4d23..34832c371d5f 100644
--- a/pkgs/development/java-modules/maven/model.nix
+++ b/pkgs/development/java-modules/maven/model.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenModel_2_0_6 = map (obj: fetchMaven {
+    version = "2.0.6";
+    baseName = "maven-model";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0v4fzp4p71zjdxbf0lwjifydrxh9ag2c6pqc4n07hnr2rvcsx8n1rhb46ifaq6ycxps64fjnwkn29i5wlfqy9yfdh8gjs6i2sy523nv"; }
+    { type = "pom"; sha512 = "1r5bk36120534ngqkh8rbxi0q0allkaqy6yxvs6s5vwjq0gvm12snp6y6vxvh5p4bljpfms7r4ljglgnnfdrl8l8vmrj0af201gnv3m"; }
+  ];
+
   mavenModel_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
     baseName = "maven-model";
@@ -12,6 +23,17 @@ rec {
     { type = "pom"; sha512 = "2vvyawhfq0gwa54ir5l2drcfxphkd47ghwgz89v3vsqgjry714vp01pa5a6yjlwfd45mknyrb71ws6dki4zjgzhdm09ck7cxg5qkpr9"; }
   ];
 
+  mavenModel_2_2_1 = map (obj: fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-model";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "14pxgdcim20x9lisf510nazzlcjxv9fpqabkdn0d86qa7d9270m4fmya5crasx2np9h0gxl407d77vcjf99fdxizg7i32w35yljqp3z"; }
+    { type = "pom"; sha512 = "2vvyawhfq0gwa54ir5l2drcfxphkd47ghwgz89v3vsqgjry714vp01pa5a6yjlwfd45mknyrb71ws6dki4zjgzhdm09ck7cxg5qkpr9"; }
+  ];
+
   mavenModel_3_0_3 = map (obj: fetchMaven {
     version = "3.0.3";
     baseName = "maven-model";
diff --git a/pkgs/development/java-modules/maven/monitor.nix b/pkgs/development/java-modules/maven/monitor.nix
index 1304304257aa..f127efba210c 100644
--- a/pkgs/development/java-modules/maven/monitor.nix
+++ b/pkgs/development/java-modules/maven/monitor.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenMonitor_2_0_6 = map (obj: fetchMaven {
+    version = "2.0.6";
+    baseName = "maven-monitor";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3ssw8r9qdhbvi21y8lqz39aml2l9pzw4g26hvlh3rbshvhhgsm672jl1pv8z5pbs73w7px6dnz1yhcf7l5df53apfzq0fggrw9fsnhz"; }
+    { type = "pom"; sha512 = "2wdvc5r3bsrml3w6nbym9flyj3ryj308bbfmns156p9pincc73pppad5cgyv4wrwjnmwp6qfbjsz90k6481v4li88a78nmc8lhmhylr"; }
+  ];
+
   mavenMonitor_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
     baseName = "maven-monitor";
@@ -11,4 +22,15 @@ rec {
     { type = "jar"; sha512 = "2cxspfhf3sbz68y1kjqhw2lny6s1f1kf8sfad6f1qp653g4213c9yy7y3qk9szp528866vw7daa9gbymxd66k3bm09g1q4kgnkg5wn3"; }
     { type = "pom"; sha512 = "0h9brjzkvxfmk549wmq4mw71yhhf1qb1diin9rnsc5nlvh189k60088b5pcc14324gffkrvdghivfy8spjci5izmay87qk7hfsg2lxc"; }
   ];
+
+  mavenMonitor_2_2_1 = map (obj: fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-monitor";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2cxspfhf3sbz68y1kjqhw2lny6s1f1kf8sfad6f1qp653g4213c9yy7y3qk9szp528866vw7daa9gbymxd66k3bm09g1q4kgnkg5wn3"; }
+    { type = "pom"; sha512 = "0h9brjzkvxfmk549wmq4mw71yhhf1qb1diin9rnsc5nlvh189k60088b5pcc14324gffkrvdghivfy8spjci5izmay87qk7hfsg2lxc"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/maven/plugin-annotations.nix b/pkgs/development/java-modules/maven/plugin-annotations.nix
new file mode 100644
index 000000000000..da7d52242a3b
--- /dev/null
+++ b/pkgs/development/java-modules/maven/plugin-annotations.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenPluginAnnotations = map (obj: fetchMaven {
+    version = "3.1";
+    baseName = "maven-plugin-annotations";
+    package = "/org/apache/maven/plugin-tools";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "17zyw3j4zbg1hhj18i4q1f0r8gdxl3q9x5ksyqlyr0mrw2sadc6lvbbhyp3l7vsbddl4bgdx36gwvjp5d97gbmk1nbpi1vabadfhq76"; }
+    { type = "jar"; sha512 = "0rk2nzkwcrkfy3vs0zl0l2lxp3w4hkwxrypisbivv5al7sc8lbzls6jgpp3h5gx9kk4scjj24qf5vyimnbadj63rvqffg581fs2zgl9"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/plugin-api.nix b/pkgs/development/java-modules/maven/plugin-api.nix
index 56069bf19709..ed791a86955f 100644
--- a/pkgs/development/java-modules/maven/plugin-api.nix
+++ b/pkgs/development/java-modules/maven/plugin-api.nix
@@ -23,6 +23,17 @@ rec {
     { type = "jar"; sha512 = "0hvl32k09wr34b6v0wl27y6353mx3afsgwyfw0vpx5aa5b8wiw86vlbknh3kjl43zp2ffxq6b4c7n07jq3y2wczz08gscs5apszhj9q"; }
   ];
 
+  mavenPluginApi_2_2_1 = map (obj: fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-plugin-api";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "23qj23k049jz4mp77h2wj4mnjqszb99l4xvxas93cpnbdl51a5s0d0rsg60a8zg0ic04n6fr8nig0vvmmcsggx93a96w4p3na97q30n"; }
+    { type = "jar"; sha512 = "0hvl32k09wr34b6v0wl27y6353mx3afsgwyfw0vpx5aa5b8wiw86vlbknh3kjl43zp2ffxq6b4c7n07jq3y2wczz08gscs5apszhj9q"; }
+  ];
+
   mavenPluginApi_3_0_3 = map (obj: fetchMaven {
     version = "3.0.3";
     baseName = "maven-plugin-api";
diff --git a/pkgs/development/java-modules/maven/plugin-descriptor.nix b/pkgs/development/java-modules/maven/plugin-descriptor.nix
index 35b829a85785..397a7610cfe2 100644
--- a/pkgs/development/java-modules/maven/plugin-descriptor.nix
+++ b/pkgs/development/java-modules/maven/plugin-descriptor.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenPluginDescriptor_2_0_6 = map (obj: fetchMaven {
+    version = "2.0.6";
+    baseName = "maven-plugin-descriptor";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0f23srb1clkmvq05rcmv8gn7lifaw5f1i2vqyn2cfnhgcmp9i32xsbhqpx9y0rqlv6497x80dck7xylp22d3hnqkpm3pxgws9wsz7sm"; }
+    { type = "pom"; sha512 = "10hra81gs8swq00k4rw3ip8wr9gl4d7vd3621ga4298b466wic7sbb9fy9ifw22q49ia7hkigqi4ha73q7kmrl7ihnb9iv4vil02yj6"; }
+  ];
+
   mavenPluginDescriptor_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
     baseName = "maven-plugin-descriptor";
@@ -11,4 +22,15 @@ rec {
     { type = "jar"; sha512 = "0q9jw44v1mi489bqmdvj7jpv753vdp9jzp50ky6pd912x190spkw6ccmpc87azmwsf131d4h0k0fqi6iidl9ip22a8rwaa22yq7gxi8"; }
     { type = "pom"; sha512 = "0c4hrb6qhi8wxw7acyphv6l33973vhvg7vjknc3bx8bg36404ky9k78q79r3p2an2886hdfayb0l7wji86bq4q8464754gbx02ci7r8"; }
   ];
+
+  mavenPluginDescriptor_2_2_1 = map (obj: fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-plugin-descriptor";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0q9jw44v1mi489bqmdvj7jpv753vdp9jzp50ky6pd912x190spkw6ccmpc87azmwsf131d4h0k0fqi6iidl9ip22a8rwaa22yq7gxi8"; }
+    { type = "pom"; sha512 = "0c4hrb6qhi8wxw7acyphv6l33973vhvg7vjknc3bx8bg36404ky9k78q79r3p2an2886hdfayb0l7wji86bq4q8464754gbx02ci7r8"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix b/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix
index 17ed70bfa9f2..3fd437441a3f 100644
--- a/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix
+++ b/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenPluginParameterDocumenter_2_0_6 = map (obj: fetchMaven {
+    version = "2.0.6";
+    baseName = "maven-plugin-parameter-documenter";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "11yxhw6pn6np1a828ww6iq4gcg6i6l6wlr6pwx3kd0fh4cavd93rfh2khvydfsz0cw40m1kbqglnwdqbdc9d5akhwpnvhkfwsqvl8li"; }
+    { type = "pom"; sha512 = "0g62n2g7jcknzgnpl46fsdn9yndjv09fwijahlnmc1gh9w2v0rxyq42p133vgv13jc5wzfqyrf7mh3fq7p0w9mfbharaz92flh2caik"; }
+  ];
+
   mavenPluginParameterDocumenter_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
     baseName = "maven-plugin-parameter-documenter";
@@ -11,4 +22,15 @@ rec {
     { type = "jar"; sha512 = "0djr58wp7a93p96sn0k24d6liabd7a4qvsd0p7lk88ws3jwfw5bqh6d0a3fyc86fkask1wi7krrvsm7i6yiw1f1r0d6xjzj8fx5m4kz"; }
     { type = "pom"; sha512 = "39mhwcxwcqgy6pk3qlabs1b8k8fqvkps6r1zb1n7phfwh4dklngyqdrxh90j3wjg3692l7as1k0439z2x124wlh6bzpv83jmx64jiyh"; }
   ];
+
+  mavenPluginParameterDocumenter_2_2_1 = map (obj: fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-plugin-parameter-documenter";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0djr58wp7a93p96sn0k24d6liabd7a4qvsd0p7lk88ws3jwfw5bqh6d0a3fyc86fkask1wi7krrvsm7i6yiw1f1r0d6xjzj8fx5m4kz"; }
+    { type = "pom"; sha512 = "39mhwcxwcqgy6pk3qlabs1b8k8fqvkps6r1zb1n7phfwh4dklngyqdrxh90j3wjg3692l7as1k0439z2x124wlh6bzpv83jmx64jiyh"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/maven/plugin-registry.nix b/pkgs/development/java-modules/maven/plugin-registry.nix
index baccc1aeb765..7191a377a337 100644
--- a/pkgs/development/java-modules/maven/plugin-registry.nix
+++ b/pkgs/development/java-modules/maven/plugin-registry.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenPluginRegistry_2_0_6 = map (obj: fetchMaven {
+    version = "2.0.6";
+    baseName = "maven-plugin-registry";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1d9134rarw653dgn1q80dahjpkl82sfrznkhdb6s8zy6d31bbr4ry6w362r7a2p54ijx2vw3rl0jmh805p3imlf1cgra1m7pihh2b63"; }
+    { type = "pom"; sha512 = "0b85gmdgwwxdw4czs7383ivssp5n8nxr5vxnj8agjlx6yclxpbbw7n192c4p1hba8as1md52c08cxilibjiiahlv83bmzyh2hb0vdm3"; }
+  ];
+
   mavenPluginRegistry_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
     baseName = "maven-plugin-registry";
@@ -11,4 +22,15 @@ rec {
     { type = "jar"; sha512 = "14mkwxvj0rbj28df9gjnkvr20paayqdmsg0vrzcb23d3xng3zc1fy5hvkifnp7xg73qxpdz0nij56lnnj7q2dqxcnmqvh0vslhc2xja"; }
     { type = "pom"; sha512 = "0c09imgd44b3pgnj1bjak7xn2z3mpwy9nhbchagfqkicras4djmn2dqwpm1z6p1d4khwx830x9grjrw45przan8lgc7wxzkalnnaqkf"; }
   ];
+
+  mavenPluginRegistry_2_2_1 = map (obj: fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-plugin-registry";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "14mkwxvj0rbj28df9gjnkvr20paayqdmsg0vrzcb23d3xng3zc1fy5hvkifnp7xg73qxpdz0nij56lnnj7q2dqxcnmqvh0vslhc2xja"; }
+    { type = "pom"; sha512 = "0c09imgd44b3pgnj1bjak7xn2z3mpwy9nhbchagfqkicras4djmn2dqwpm1z6p1d4khwx830x9grjrw45przan8lgc7wxzkalnnaqkf"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/maven/profile.nix b/pkgs/development/java-modules/maven/profile.nix
index 674f35a2ef9a..bcaae06b1f99 100644
--- a/pkgs/development/java-modules/maven/profile.nix
+++ b/pkgs/development/java-modules/maven/profile.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenProfile_2_0_6 = map (obj: fetchMaven {
+    version = "2.0.6";
+    baseName = "maven-profile";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3wng0csnn4v3y2gndazg46hqriz27kkb977xzw5wr8anyharlz2ancl38zyfjf5vm18irqn8cxqklhzd3x1h0h6rlvz5z1wrrivr5kl"; }
+    { type = "pom"; sha512 = "063vbh2miyfvrp90hs5cff5r8cj573zysjvd79lnz7zsah3ddbg6sbv09nb0pjy76pbqgrh913dziqk12l13kwngcgpq8v38v92vh63"; }
+  ];
+
   mavenProfile_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
     baseName = "maven-profile";
@@ -11,4 +22,15 @@ rec {
     { type = "jar"; sha512 = "2v315cv62k3lmi23msk5rj9bijsafcajw7053jdzzk4zv03vdpdndm5cr995azrpdcvkcdq2m8zh5pdf44nzcdf2rvpm4nxdc2wr5rl"; }
     { type = "pom"; sha512 = "05iif04frjgbmg7zb3jygn9av2ja48vs2z35b2zrlmgf3s1fxqlr4wxylrrmmk8r0hvg4qmg5j0inm414n0v4ipn08hrpzik5nhdfgy"; }
   ];
+
+  mavenProfile_2_2_1 = map (obj: fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-profile";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2v315cv62k3lmi23msk5rj9bijsafcajw7053jdzzk4zv03vdpdndm5cr995azrpdcvkcdq2m8zh5pdf44nzcdf2rvpm4nxdc2wr5rl"; }
+    { type = "pom"; sha512 = "05iif04frjgbmg7zb3jygn9av2ja48vs2z35b2zrlmgf3s1fxqlr4wxylrrmmk8r0hvg4qmg5j0inm414n0v4ipn08hrpzik5nhdfgy"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/maven/project.nix b/pkgs/development/java-modules/maven/project.nix
index 0d88850fb5db..142a311feed0 100644
--- a/pkgs/development/java-modules/maven/project.nix
+++ b/pkgs/development/java-modules/maven/project.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenProject_2_0_6 = map (obj: fetchMaven {
+    version = "2.0.6";
+    baseName = "maven-project";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "12k56956ad8r5fpz5ilxy1i2msg4vnpcyqc7zq9b5ncqx890bcnl9xl5f5y0bkj6l6688z6vrwi28rgj35a77x3wiwcvhgrgxyfy53a"; }
+    { type = "pom"; sha512 = "13z607rjazzrs3rjw6hlhpw6jip85lgdkvnkm1j17wsbhywa53x45ydyg1hzrcax8xr5zxn7mkrryp4wwwm4ihhsaz3nq8bh12yrh8p"; }
+  ];
+
   mavenProject_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
     baseName = "maven-project";
diff --git a/pkgs/development/java-modules/maven/reporting-api.nix b/pkgs/development/java-modules/maven/reporting-api.nix
index ea8088489112..36818dc57e0c 100644
--- a/pkgs/development/java-modules/maven/reporting-api.nix
+++ b/pkgs/development/java-modules/maven/reporting-api.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenReportingApi_2_0_6 = map (obj: fetchMaven {
+    version = "2.0.6";
+    baseName = "maven-reporting-api";
+    package = "/org/apache/maven/reporting";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "236xqa5bqih3lkfwdmfsb4wgkn8mllnzpnr4dhzch2jlhcsvl4fm1zmawk1njd8ibq9dyfg3n41a6hc8ydndh0ffxdm1mjnch9bv1da"; }
+    { type = "pom"; sha512 = "3vlfls0g1bjrjpgzv6zlfglr1gxwm9m6zm88m9ij8ap934cxrzqj7pkqyx0s2vc8j700xgrwj57ahmfdrdi4v1arav1m1790plbip3y"; }
+  ];
+
   mavenReportingApi_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
     baseName = "maven-reporting-api";
diff --git a/pkgs/development/java-modules/maven/repository-metadata.nix b/pkgs/development/java-modules/maven/repository-metadata.nix
index 125788c54f92..7e29ada05129 100644
--- a/pkgs/development/java-modules/maven/repository-metadata.nix
+++ b/pkgs/development/java-modules/maven/repository-metadata.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenRepositoryMetadata_2_0_6 = map (obj: fetchMaven {
+    version = "2.0.6";
+    baseName = "maven-repository-metadata";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3qh52jisq2facab5nw35pazf99z1yn8pfklvy8hcczd4dab1pj115jimfhpx48mmlaydaw50m006imfvlivxnadfxfk3887acmhp7bv"; }
+    { type = "pom"; sha512 = "2sg2n3wxfanhf4jgmp2q9lh2hsnch54mzgh1clna2ywnnwh88cn37c9m9b6a0qgdc1m7yzlfg8r3k77ypfa3aa7hr3f9b2hi2k4pb0c"; }
+  ];
+
   mavenRepositoryMetadata_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
     baseName = "maven-repository-metadata";
@@ -11,4 +22,15 @@ rec {
     { type = "jar"; sha512 = "2np435shcca1jka1gdjxs4bzzayfnfzncpnxhlfy59b32vfpvf5v0kca0zgyx7251ghhb2ks2xxd798rbzvr0gzivicwdrnd5x8g0hm"; }
     { type = "pom"; sha512 = "27b9z80qdkn7p4fs6k87a5i926c3dsr6jmq4rz8dyiml1svqsvvghzz59cby6n8wkx7wn003wk28jzc08x53vbk5zsvcg9ckslxhjyw"; }
   ];
+
+  mavenRepositoryMetadata_2_2_1 = map (obj: fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-repository-metadata";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2np435shcca1jka1gdjxs4bzzayfnfzncpnxhlfy59b32vfpvf5v0kca0zgyx7251ghhb2ks2xxd798rbzvr0gzivicwdrnd5x8g0hm"; }
+    { type = "pom"; sha512 = "27b9z80qdkn7p4fs6k87a5i926c3dsr6jmq4rz8dyiml1svqsvvghzz59cby6n8wkx7wn003wk28jzc08x53vbk5zsvcg9ckslxhjyw"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/maven/settings.nix b/pkgs/development/java-modules/maven/settings.nix
index 73d707144bdb..19f0a1ae24d9 100644
--- a/pkgs/development/java-modules/maven/settings.nix
+++ b/pkgs/development/java-modules/maven/settings.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenSettings_2_0_6 = map (obj: fetchMaven {
+    version = "2.0.6";
+    baseName = "maven-settings";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3yvxlk0d40p1i0vwf4ba6k45kikcvip1vvr86k6cnhs86gfy6w1b4kw4hc6p23i978cgcl19g79m0l40nsxpav9hc07573k47ammclv"; }
+    { type = "pom"; sha512 = "03cz2z90h9c3lssl53glbpz9hflsgb3a14i4xr5p7lpm993c07zn7xp2f6sjcdq7b774spbiww0alll9cz2vs8m7pvvwnbxk0s09d7l"; }
+  ];
+
   mavenSettings_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
     baseName = "maven-settings";
@@ -11,4 +22,15 @@ rec {
     { type = "jar"; sha512 = "1hy1wz2bb7f9y0rr5961zhalpbwmk0fhw49k0l527w897lz4zw7lnb8xnx530s6hmn58zqj7iwkx4spz2fahps4ss1ryk0601rzgv4a"; }
     { type = "pom"; sha512 = "3i2nq3r6piwhv265jhsj9hqriw6113vkqllx5s4kd4y2dspjxh6l9xprrw347nkw68904dyq9hdx76fx2nzjd16ldh41pim5lw8r15n"; }
   ];
+
+  mavenSettings_2_2_1 = map (obj: fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-settings";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1hy1wz2bb7f9y0rr5961zhalpbwmk0fhw49k0l527w897lz4zw7lnb8xnx530s6hmn58zqj7iwkx4spz2fahps4ss1ryk0601rzgv4a"; }
+    { type = "pom"; sha512 = "3i2nq3r6piwhv265jhsj9hqriw6113vkqllx5s4kd4y2dspjxh6l9xprrw347nkw68904dyq9hdx76fx2nzjd16ldh41pim5lw8r15n"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/maven/shared-incremental.nix b/pkgs/development/java-modules/maven/shared-incremental.nix
new file mode 100644
index 000000000000..2d4ec372be45
--- /dev/null
+++ b/pkgs/development/java-modules/maven/shared-incremental.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenSharedIncremental_1_1 = map (obj: fetchMaven {
+    version = "1.1";
+    baseName = "maven-shared-incremental";
+    package = "/org/apache/maven/shared";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1g2gsk3s5v5dg6y81a2046aqf5v19jn6i0jwha78xi3gyx7ajgxkdn2wswf9gdxxvc44qk6lzn33bl3pk3vl1b84h2hdxz7yyhajbfr"; }
+    { type = "pom"; sha512 = "2fqj1p1059v462casy2mzj1bg8mawb5lihx5430px9440vyl1iggqg598r6798162m8c7ilav3x71x763rchhskpqakfkvydkjhrjfr"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/shared-utils.nix b/pkgs/development/java-modules/maven/shared-utils.nix
new file mode 100644
index 000000000000..9b56075383d0
--- /dev/null
+++ b/pkgs/development/java-modules/maven/shared-utils.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenSharedUtils_0_1 = map (obj: fetchMaven {
+    version = "0.1";
+    baseName = "maven-shared-utils";
+    package = "/org/apache/maven/shared";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0xf4pb0bh2kr3qx1yqav528886fdvsb801mq22hnbs8cbaghgibcb0n8w6rbiyd59y1fmiacyhhcc18ahcxv71531m704w5gydrwx9k"; }
+    { type = "pom"; sha512 = "0w5ryz3kdx6c10bwhbdpic567cf1b4918anncls9gzy89lfc4lj4lnyhapv7lsfp3fzifas618m7mh4pv5gdpjbml3fgjnqcq6895g6"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/surefire-api.nix b/pkgs/development/java-modules/maven/surefire-api.nix
new file mode 100644
index 000000000000..b696beae4c46
--- /dev/null
+++ b/pkgs/development/java-modules/maven/surefire-api.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenSurefireBooter_2_12_4 = map (obj: fetchMaven {
+    version = "2.12.4";
+    baseName = "maven-surefire-booter";
+    package = "/org/apache/maven/surefire";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0xf4pb0bh2kr3qx1yqav528886fdvsb801mq22hnbs8cbaghgibcb0n8w6rbiyd59y1fmiacyhhcc18ahcxv71531m704w5gydrwx9k"; }
+    { type = "pom"; sha512 = "0w5ryz3kdx6c10bwhbdpic567cf1b4918anncls9gzy89lfc4lj4lnyhapv7lsfp3fzifas618m7mh4pv5gdpjbml3fgjnqcq6895g6"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/surefire-booter.nix b/pkgs/development/java-modules/maven/surefire-booter.nix
new file mode 100644
index 000000000000..b696beae4c46
--- /dev/null
+++ b/pkgs/development/java-modules/maven/surefire-booter.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenSurefireBooter_2_12_4 = map (obj: fetchMaven {
+    version = "2.12.4";
+    baseName = "maven-surefire-booter";
+    package = "/org/apache/maven/surefire";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0xf4pb0bh2kr3qx1yqav528886fdvsb801mq22hnbs8cbaghgibcb0n8w6rbiyd59y1fmiacyhhcc18ahcxv71531m704w5gydrwx9k"; }
+    { type = "pom"; sha512 = "0w5ryz3kdx6c10bwhbdpic567cf1b4918anncls9gzy89lfc4lj4lnyhapv7lsfp3fzifas618m7mh4pv5gdpjbml3fgjnqcq6895g6"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/surefire-common.nix b/pkgs/development/java-modules/maven/surefire-common.nix
new file mode 100644
index 000000000000..0d1bd53721cd
--- /dev/null
+++ b/pkgs/development/java-modules/maven/surefire-common.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenSurefireCommon_2_12_4 = map (obj: fetchMaven {
+    version = "2.12.4";
+    baseName = "maven-surefire-common";
+    package = "/org/apache/maven/surefire";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0xf4pb0bh2kr3qx1yqav528886fdvsb801mq22hnbs8cbaghgibcb0n8w6rbiyd59y1fmiacyhhcc18ahcxv71531m704w5gydrwx9k"; }
+    { type = "pom"; sha512 = "0w5ryz3kdx6c10bwhbdpic567cf1b4918anncls9gzy89lfc4lj4lnyhapv7lsfp3fzifas618m7mh4pv5gdpjbml3fgjnqcq6895g6"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/toolchain.nix b/pkgs/development/java-modules/maven/toolchain.nix
new file mode 100644
index 000000000000..14e6866ee329
--- /dev/null
+++ b/pkgs/development/java-modules/maven/toolchain.nix
@@ -0,0 +1,25 @@
+{ fetchMaven }:
+
+rec {
+  mavenToolchain_1_0 = map (obj: fetchMaven {
+    version = "1.0";
+    baseName = "maven-toolchain";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "34kxv3l3676ddrsj2k02f9fmphcq16avafka950d5dclrcx7w37wgxx3gcf6zfixfx9zlbb7annsa05y8f0rx97g13rkqdfdj1wknky"; }
+    { type = "pom"; sha512 = "0arkdm0bii7cm0g8qzzfih1jk9j7myn8w2ccr6j01wsj08gv7cbjr5k9jx1iwy1vzvhhsmsj6grq678zsgbvh4msn1s44i744x4fhvy"; }
+  ];
+
+  mavenToolchain_2_0_9 = map (obj: fetchMaven {
+    version = "2.0.9";
+    baseName = "maven-toolchain";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "34kxv3l3676ddrsj2k02f9fmphcq16avafka950d5dclrcx7w37wgxx3gcf6zfixfx9zlbb7annsa05y8f0rx97g13rkqdfdj1wknky"; }
+    { type = "pom"; sha512 = "0arkdm0bii7cm0g8qzzfih1jk9j7myn8w2ccr6j01wsj08gv7cbjr5k9jx1iwy1vzvhhsmsj6grq678zsgbvh4msn1s44i744x4fhvy"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/mavenPlugins.nix b/pkgs/development/java-modules/mavenPlugins.nix
index 17d4c86ba995..15be1594117f 100644
--- a/pkgs/development/java-modules/mavenPlugins.nix
+++ b/pkgs/development/java-modules/mavenPlugins.nix
@@ -9,8 +9,134 @@ let
 in rec {
   inherit mavenbuild fetchMaven poms;
 
-  # Standard plugins used by pretty much every Maven build
-  mavenDefault = lib.flatten [ aetherUtil_0_9_0_M2 bsh_2_0_b4 classworlds_1_1 commonsCli_1_0 commonsLang_2_3 mavenArtifact_2_0_9 mavenArtifact_3_0_3 mavenArtifactManager_2_0_9 mavenClean_2_5 mavenCommonArtifactFilters_1_4 mavenCompiler_3_1 mavenCore_2_0_9 mavenDependencyTree_2_1 mavenDoxiaSinkApi_1_0_alpha10 mavenEnforcer_1_3_1 mavenEnforcerApi_1_3_1 mavenEnforcerRules_1_3_1 mavenErrorDiagnostics_2_0_9 mavenInstall_2_4 mavenJar_2_4 mavenModel_2_0_9 mavenModel_3_0_3 mavenMonitor_2_0_9 mavenPluginApi_2_0_6 mavenPluginApi_2_0_9 mavenPluginApi_3_0_3 mavenPluginDescriptor_2_0_9 mavenPluginParameterDocumenter_2_0_9 mavenPluginRegistry_2_0_9 mavenProfile_2_0_9 mavenProject_2_0_9 mavenReplacer_1_5_3 mavenReportingApi_2_0_9 mavenRepositoryMetadata_2_0_9 mavenResources_2_6 mavenSettings_2_0_9 mavenSurefire_2_17 plexusComponentAnnotations_1_5_5 plexusContainerDefault_1_0_alpha9_stable1 plexusI18n_1_0_beta6 plexusInteractivityApi_1_0_alpha4 plexusUtils_1_5_8 plexusUtils_2_0_6 plexusUtils_3_0 ] ++ (with poms; [ aether_0_9_0_M2 animalSnifferParent_1_11 apache_10 apache_11 apache_13 apache_3 apache_4 apache_6 beanshell_2_0_b4 codehausParent_4 doxia_1_0_alpha10 doxia_1_0 enforcer_1_3_1 hamcrestParent_1_3 maven_2_0_6 maven_2_0_9 maven_3_0_3 mavenParent_15 mavenParent_21 mavenParent_22 mavenParent_23 mavenParent_5 mavenParent_6 mavenParent_8 mavenPlugins_22 mavenPlugins_23 mavenPlugins_24 mavenReporting_2_0_9 mavenSharedComponents_17 mavenSharedComponents_19 mojoParent_32 plexus_1_0_4 plexus_2_0_2 plexus_2_0_7 plexusComponents_1_1_4 plexusContainers_1_0_3 plexusContainers_1_5_5 sonatypeForgeParent_5 sonatypeParent_7 sonatypeSpiceParent_16 surefire_2_17 ]);
+  # "Minimal"
+  mavenMinimal = lib.flatten
+[
+classworlds_1_1
+commonsCli_1_0
+findbugsJsr305_2_0_1
+junit_3_8_1
+mavenArchiver_2_5
+mavenArtifact_2_0_6
+mavenArtifact_2_0_9
+mavenArtifactManager_2_0_6
+mavenArtifactManager_2_0_9
+mavenArtifactManager_2_2_1
+mavenClean_2_5
+mavenCompiler_3_1
+mavenCore_2_0_6
+mavenCore_2_0_9
+mavenCore_2_2_1
+mavenDoxiaSinkApi_1_0_alpha7
+mavenErrorDiagnostics_2_0_6
+mavenErrorDiagnostics_2_0_9
+mavenErrorDiagnostics_2_2_1
+mavenFiltering_1_1
+mavenInstall_2_4
+mavenJar_2_4
+mavenModel_2_0_6
+mavenModel_2_0_9
+mavenModel_2_2_1
+mavenMonitor_2_0_6
+mavenMonitor_2_0_9
+mavenMonitor_2_2_1
+mavenPluginDescriptor_2_0_6
+mavenPluginDescriptor_2_0_9
+mavenPluginDescriptor_2_2_1
+mavenPluginParameterDocumenter_2_0_6
+mavenPluginParameterDocumenter_2_0_9
+mavenPluginParameterDocumenter_2_2_1
+mavenProfile_2_0_6
+mavenProfile_2_0_9
+mavenProfile_2_2_1
+mavenProject_2_0_6
+mavenProject_2_0_9
+mavenPluginAnnotations_3_1
+mavenPluginApi_2_0_6
+mavenPluginApi_2_0_9
+mavenPluginApi_2_2_1
+mavenPluginRegistry_2_0_6
+mavenPluginRegistry_2_0_9
+mavenPluginRegistry_2_2_1
+mavenReportingApi_2_0_6
+mavenReportingApi_2_0_9
+mavenRepositoryMetadata_2_0_6
+mavenRepositoryMetadata_2_0_9
+mavenRepositoryMetadata_2_2_1
+mavenResources_2_6
+mavenSettings_2_0_6
+mavenSettings_2_0_9
+mavenSettings_2_2_1
+mavenSharedIncremental_1_1
+mavenSharedUtils_0_1
+mavenSurefire_2_12_4
+mavenSurefireApi_2_12_4
+mavenSurefireBooter_2_12_4
+mavenSurefireCommon_2_12_4
+mavenToolchain_1_0
+mavenToolchain_2_0_9
+plexusBuildApi_0_0_4
+plexusCompilerApi_2_2
+plexusContainerDefault_1_0_alpha9_stable1
+plexusInteractivityApi_1_0_alpha4
+plexusInterpolation_1_13
+plexusUtils_1_5_1
+plexusUtils_2_0_5
+plexusUtils_3_0
+]
+++
+(with
+poms;
+[
+apache_3
+apache_4
+apache_5
+apache_6
+apache_9
+apache_10
+apache_11
+apache_13
+doxia_1_0_alpha7
+maven_2_0_6
+maven_2_0_9
+maven_2_2_1
+mavenParent_5
+mavenParent_8
+mavenParent_11
+mavenParent_13
+mavenParent_21
+mavenParent_22
+mavenParent_23
+mavenPlugins_22
+mavenPlugins_23
+mavenPlugins_24
+mavenPluginTools_3_1
+mavenReporting_2_0_6
+mavenReporting_2_0_9
+mavenSharedComponents_12
+mavenSharedComponents_17
+mavenSharedComponents_18
+mavenSharedComponents_19
+plexus_1_0_4
+plexus_1_0_11
+plexus_2_0_3
+plexus_2_0_6
+plexus_2_0_7
+plexus_3_3_1
+plexusCompiler_2_2
+plexusComponents_1_1_15
+plexusComponents_1_3_1
+plexusComponentAnnotations_1_5_5
+plexusContainers_1_0_3
+plexusContainers_1_5_5
+sonatypeForgeParent_3
+sonatypeForgeParent_5
+sonatypeForgeParent_10
+sonatypeSpiceParent_10
+sonatypeSpiceParent_16
+sonatypeSpiceParent_17
+surefire_2_12_4
+]);
 
   animalSniffer_1_11 = map (obj: fetchMaven {
     version = "1.11";
@@ -100,6 +226,17 @@ in rec {
     { type = "jar"; sha512 = "3j8smsx6wk085iic5qhknrszixxna6szmvk2rn9zkn75ffjr7ham72hw9cmxf5160j73n8f2cmcbw1x462fqy12fqqpmzx08i1sbwcv"; }
   ];
 
+  mavenSurefire_2_12_4 = map (obj: fetchMaven rec {
+    version = "2.12.4";
+    baseName = "maven-surefire-plugin";
+    package = "/org/apache/maven/plugins";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "3qkzmh5fk3s7y3qy91qck1nc0yadwsizxy61wp410dspsd73cchqll7vjl11cj6k5kywjxsl9dihy2gp949nh8380lbvs11g83wrgmv"; }
+    { type = "jar"; sha512 = "2sjq2l8i97h3ay8wwrsi75cfs9d1im5ar2sn2zv4q6xsv4v3hh5y481l9xwc5dnbcfdjs38ald0z60pxpcyiqrng6h69s2ws8fhb0mm"; }
+  ];
+
   mavenSurefire_2_17 = map (obj: fetchMaven rec {
     version = "2.17";
     baseName = "maven-surefire-plugin";
diff --git a/pkgs/development/java-modules/plexus/build-api.nix b/pkgs/development/java-modules/plexus/build-api.nix
new file mode 100644
index 000000000000..2425a6f12bae
--- /dev/null
+++ b/pkgs/development/java-modules/plexus/build-api.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  plexusBuildApi_0_0_4 = map (obj: fetchMaven {
+    version = "0.0.4";
+    baseName = "plexus-build-api";
+    package = "/org/sonatype/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0ihr946rd2cwc1qsi8g104vpyz1ml5ypl3374z3rhlmm4i0xgn6vsa9sg8bnh1848klhxsp11i0gm4adg6lzk3s88mqm5b4wlbsdvv2"; }
+    { type = "pom"; sha512 = "1135ca387fvzjb04j8z93jmy61zpi2w7a6c6rq9xxk33xz9nxzzwvca7k40j6jsj0bmjbswrpdck7qh2921rn3j4vfsihbi9g7mb31r"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/plexus/compiler-api.nix b/pkgs/development/java-modules/plexus/compiler-api.nix
new file mode 100644
index 000000000000..2ef5d3cdab15
--- /dev/null
+++ b/pkgs/development/java-modules/plexus/compiler-api.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  plexusCompilerApi_2_2 = map (obj: fetchMaven {
+    version = "2.2";
+    baseName = "plexus-compiler-api";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3by7icjfiymp7g2v1ci5dqwml6ibzh2njyg2w43kvaz3ydcxkzmfg5s97wsdqjsii7vdgqyhr16ydsn6mr90wbjvsi6wasaq1rqa812"; }
+    { type = "pom"; sha512 = "0pdl78hp921lgkfya54wl8hxgm1c5474j1p921q5ix1knx1rlr4klpjwx212wy2m7b6bxq0bkf8n66mqjr72rh2rh308qij00ymrga8"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/plexus/interpolation.nix b/pkgs/development/java-modules/plexus/interpolation.nix
new file mode 100644
index 000000000000..17660f0804c5
--- /dev/null
+++ b/pkgs/development/java-modules/plexus/interpolation.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  plexusInterpolation_1_13 = map (obj: fetchMaven {
+    version = "1.13";
+    baseName = "plexus-interpolation";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0sm1kaxsvn8007br7nr9ncjppmfkp8nzr6ipwwx86idai9bqcsm4kh2scxf893s4jf2ii7f5106dd5w4h7bw67csalhqqzi1zpndbk4"; }
+    { type = "pom"; sha512 = "3hlv9l82yxjbnaf2vqq6p3w38jq2id15a2yjg6wj810fl2286zz5ci3g3x7x0z0xdrxrrfvswns92v25197vpg0dki113lwdbw4bsvr"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/plexus/utils.nix b/pkgs/development/java-modules/plexus/utils.nix
index 672a43455c9a..17dc1acdf1f8 100644
--- a/pkgs/development/java-modules/plexus/utils.nix
+++ b/pkgs/development/java-modules/plexus/utils.nix
@@ -12,6 +12,17 @@ rec {
     { type = "pom"; sha512 = "0vbzdfsdcc4cq7hdqzb1vdfxp23vnavq7z4qmmlb4d4fiqj5wqdgagrs43gl7yzca2azpyj3kyxgaipimi7gck07jcsz0pzljkplk4w"; }
   ];
 
+  plexusUtils_1_5_1 = map (obj: fetchMaven {
+    version = "1.5.1";
+    baseName = "plexus-utils";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "00vf59sg0wa4kip1m365xh3ngggvnr7avkf1mwsljyag5h8pb4fhpba550ka2mbpp10z8d7mjhj3wxinvf19m2bmrjmqvdxiwraa5jh"; }
+    { type = "pom"; sha512 = "161cdrgjrw2cab4lf189hwa4s1lh42fsahjcjkir696sx0m9bmmxgjbhwxl1l8kpaxn5p6jf701bx16gry393pws636vy59nvnnx1sw"; }
+  ];
+
   plexusUtils_1_5_8 = map (obj: fetchMaven {
     version = "1.5.8";
     baseName = "plexus-utils";
@@ -23,6 +34,17 @@ rec {
     { type = "pom"; sha512 = "06z4gkq3bh2pwyj8pvaly9fihd8gbgcqp3jxl05vkj2rcdb4jw3lw3hwn8f8ggqi17i2fdm8cbndkqgr9vdgiz45p8f1nx8kjlqikbi"; }
   ];
 
+  plexusUtils_2_0_5 = map (obj: fetchMaven {
+    version = "2.0.5";
+    baseName = "plexus-utils";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3g72mxvlsf18hl1vn9sq4i13nlpd66fkn2l8d96883f4n638sx031f8cnx6f08my3rfc67pypy4lsiagx2rj2x5ccqp9g9kzvbh4i5w"; }
+    { type = "pom"; sha512 = "2rkkshqf3ahjijvr64ndzh10iksbz7pj0618drvg9iklnpv6i6y904fi31xjg7vxb3fy17k3mvi49pr2jxznbf1c8ndwbyawlvmw9j7"; }
+  ];
+
   plexusUtils_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
     baseName = "plexus-utils";
diff --git a/pkgs/development/java-modules/poms.nix b/pkgs/development/java-modules/poms.nix
index 39dc95281406..3e5ef87223f6 100644
--- a/pkgs/development/java-modules/poms.nix
+++ b/pkgs/development/java-modules/poms.nix
@@ -33,6 +33,14 @@ rec {
     type = "pom";
   };
 
+  apache_5 = fetchMaven {
+    version = "5";
+    baseName = "apache";
+    package = "/org/apache";
+    sha512 = "3yb998i1azfxdjk2ndcc19gzx12i0bdi6jqwp5mhwp9ac5dfsplkb5np4bkpsb948y8kpvw1pyvkx8rw0a0rvkxqzxr98ng5nq80vw6";
+    type = "pom";
+  };
+
   apache_6 = fetchMaven {
     version = "6";
     baseName = "apache";
@@ -41,6 +49,14 @@ rec {
     type = "pom";
   };
 
+  apache_9 = fetchMaven {
+    version = "9";
+    baseName = "apache";
+    package = "/org/apache";
+    sha512 = "3yb998i1azfxdjk2ndcc19gzx12i0bdi6jqwp5mhwp9ac5dfsplkb5np4bkpsb948y8kpvw1pyvkx8rw0a0rvkxqzxr98ng5nq80vw6";
+    type = "pom";
+  };
+
   apache_10 = fetchMaven {
     version = "10";
     baseName = "apache";
@@ -81,6 +97,14 @@ rec {
     type = "pom";
   };
 
+  doxia_1_0_alpha7 = fetchMaven {
+    version = "1.0-alpha-7";
+    baseName = "doxia";
+    package = "/org/apache/maven/doxia";
+    sha512 = "0fg3l7dyi0c7r1h9rzjn23gv57kc67jpzlcji6yh4nawp3byfbz1rq8wnbj3av3wd29v9h2ff34p06ia9wxbs8q3kz4xy31w7sw7fxg";
+    type = "pom";
+  };
+
   doxia_1_0_alpha10 = fetchMaven {
     version = "1.0-alpha-10";
     baseName = "doxia";
@@ -129,6 +153,14 @@ rec {
     type = "pom";
   };
 
+  maven_2_2_1 = fetchMaven {
+    version = "2.2.1";
+    baseName = "maven";
+    package = "/org/apache/maven";
+    sha512 = "2b3wfqxbg0v2lm82a7nzw8wzw708isfrnzriy90bk89dhnj59qzpgvwrjbhs26a32gnpii5ivivh1msq51k1b7j5knmyf0hi1v0blw0";
+    type = "pom";
+  };
+
   maven_3_0_3 = fetchMaven {
     version = "3.0.3";
     baseName = "maven";
@@ -217,6 +249,22 @@ rec {
     type = "pom";
   };
 
+  mavenPluginTools_3_1 = fetchMaven {
+    version = "3.1";
+    baseName = "maven-plugin-tools";
+    package = "/org/apache/maven/plugin-tools";
+    sha512 = "07flf37pkkc34466bnzi4rfwdlgvd3ydasm39qzy2hybxv26306zrhipglmgsjvd84z07dscij4n7qdd2jkx9hrkm900hid4xwvxzrs";
+    type = "pom";
+  };
+
+  mavenReporting_2_0_6 = fetchMaven {
+    version = "2.0.6";
+    baseName = "maven-reporting";
+    package = "/org/apache/maven/reporting";
+    sha512 = "3bi678sg28yxhlby4d3a6mq9fhg1qnjb57kbkhi7dfx9g0c1p6cxhg8cixjz9wv31lkjpspbpp1fq0z29a93lqrjqczlg8a7i1sg554";
+    type = "pom";
+  };
+
   mavenReporting_2_0_9 = fetchMaven {
     version = "2.0.9";
     baseName = "maven-reporting";
@@ -225,6 +273,14 @@ rec {
     type = "pom";
   };
 
+  mavenSharedComponents_12 = fetchMaven {
+    version = "12";
+    baseName = "maven-shared-components";
+    package = "/org/apache/maven/shared";
+    sha512 = "3f2pifiapx09h3wv9lglm0mkd9gid268lfz27jhqb4ck2yxna31872db7cj5c9lsg0pl2l3bwgp526whq14zj2qffqxrdq8mn9m0rhy";
+    type = "pom";
+  };
+
   mavenSharedComponents_17 = fetchMaven {
     version = "17";
     baseName = "maven-shared-components";
@@ -233,6 +289,14 @@ rec {
     type = "pom";
   };
 
+  mavenSharedComponents_18 = fetchMaven {
+    version = "18";
+    baseName = "maven-shared-components";
+    package = "/org/apache/maven/shared";
+    sha512 = "2qqabrvgs4kb14v28qkfwj16n715mj5mh4m8aw0dybi5igmrvwh1d8jsjggdfbh929m6499w8x5s6aw0gbzmfzr3wjkz54dqxnm49p0";
+    type = "pom";
+  };
+
   mavenSharedComponents_19 = fetchMaven {
     version = "19";
     baseName = "maven-shared-components";
@@ -257,6 +321,14 @@ rec {
     type = "pom";
   };
 
+  plexus_1_0_11 = fetchMaven {
+    version = "1.0.11";
+    baseName = "plexus";
+    package = "/org/codehaus/plexus";
+    sha512 = "20fb1yvg26wg3lih55m8m4i1idiffyg3jlkvazmxqqvnahz2llgd5cfvqcrzg8lkinnypr4ic5glci4lza46k1sfl5nrviyfx0n7kgr";
+    type = "pom";
+  };
+
   plexus_2_0_2 = fetchMaven {
     version = "2.0.2";
     baseName = "plexus";
@@ -265,6 +337,22 @@ rec {
     type = "pom";
   };
 
+  plexus_2_0_3 = fetchMaven {
+    version = "2.0.3";
+    baseName = "plexus";
+    package = "/org/codehaus/plexus";
+    sha512 = "15adqpm0gz7c0jwjd4yk0k8h4h7vnz15v1fdmzb6rgs6avl1dx84r5l0fqs6b02kw008rg68inii7nl4m5xwqrj807wr8qzrjm02cam";
+    type = "pom";
+  };
+
+  plexus_2_0_6 = fetchMaven {
+    version = "2.0.6";
+    baseName = "plexus";
+    package = "/org/codehaus/plexus";
+    sha512 = "07rrw1yldy4c2qvwv3hcf9rdbr0jf57qsnnv2ai9fajwhjyjkgjixm2zlsid41bm2w8hacg9crzy6nfz8yh1sdh5p767niy9jripq2h";
+    type = "pom";
+  };
+
   plexus_2_0_7 = fetchMaven {
     version = "2.0.7";
     baseName = "plexus";
@@ -273,6 +361,22 @@ rec {
     type = "pom";
   };
 
+  plexus_3_3_1 = fetchMaven {
+    version = "3.3.1";
+    baseName = "plexus";
+    package = "/org/codehaus/plexus";
+    sha512 = "1q1p0sfzkhdpknaf0ysq7vzd0qip9q86z62nwamfh9gdsp7lh99kh6hmxav2daha462c3jra6clfniyqrbvs07jwjhf4c79rwhnqc2q";
+    type = "pom";
+  };
+
+  plexusCompiler_2_2 = fetchMaven {
+    version = "2.2";
+    baseName = "plexus-compiler";
+    package = "/org/codehaus/plexus";
+    sha512 = "26sr1hg214qf65nym85viv1z4nk1bgqahx7n4bq3did49s9ymgz2c08vw7zdlcqws5jndz9n2xlyq285plgv3xx2mxrrsi2r24zmw29";
+    type = "pom";
+  };
+
   plexusComponents_1_1_4 = fetchMaven {
     version = "1.1.4";
     baseName = "plexus-components";
@@ -281,6 +385,22 @@ rec {
     type = "pom";
   };
 
+  plexusComponents_1_1_15 = fetchMaven {
+    version = "1.1.15";
+    baseName = "plexus-components";
+    package = "/org/codehaus/plexus";
+    sha512 = "0lfzdq1wlsnkiapzjs8cqi2kzkaw9lfjhdhmf1pz2x83m5njfx2y59v14wgcs2k4cig8kjr45v4qnmd7mp03k8gginzflc1qi1y7yv6";
+    type = "pom";
+  };
+
+  plexusComponents_1_3_1 = fetchMaven {
+    version = "1.3.1";
+    baseName = "plexus-components";
+    package = "/org/codehaus/plexus";
+    sha512 = "16bnfja035zb508f340y64v4vk7pkldn8bvnxvbk0grk8a76rirsn4dl60x3hgmasgkb0y75gr9qp4y72m079klhgg0mbvcfvslkxqb";
+    type = "pom";
+  };
+
   plexusContainers_1_0_3 = fetchMaven {
     version = "1.0.3";
     baseName = "plexus-containers";
@@ -297,6 +417,14 @@ rec {
     type = "pom";
   };
 
+  sonatypeForgeParent_3 = fetchMaven {
+    version = "3";
+    baseName = "forge-parent";
+    package = "/org/sonatype/forge";
+    sha512 = "20x89zl6k0wgd1gb6ysxm6bmgqxwyz3d7zyjn8bwzkz93k7lxnxm0k7skvha283q9ay4cd2vkjisi5avl1f3wvz89rrwg136gmdlksv";
+    type = "pom";
+  };
+
   sonatypeForgeParent_5 = fetchMaven {
     version = "5";
     baseName = "forge-parent";
@@ -305,6 +433,14 @@ rec {
     type = "pom";
   };
 
+  sonatypeForgeParent_10 = fetchMaven {
+    version = "10";
+    baseName = "forge-parent";
+    package = "/org/sonatype/forge";
+    sha512 = "3fpnvrxfkxpxqdsn6g7w1zyql4v0z9iqbjprhh4c6rldrbvq4h3yh7dl5sw4h7av516zhmb3bkc9ycfdr5gs34sfb6f6x5hk7qc374a";
+    type = "pom";
+  };
+
   sonatypeParent_7 = fetchMaven {
     version = "7";
     baseName = "oss-parent";
@@ -313,6 +449,14 @@ rec {
     type = "pom";
   };
 
+  sonatypeSpiceParent_10 = fetchMaven {
+    version = "10";
+    baseName = "spice-parent";
+    package = "/org/sonatype/spice";
+    sha512 = "0gg2cxqvfmg6jk7qi2f4hcgskpd1ysnf1d5vay8dza40wfbk2vy7qvhgjhg55dpbjkadmsj483hg81qdzwqbxmagd2xr9j9062hbja8";
+    type = "pom";
+  };
+
   sonatypeSpiceParent_16 = fetchMaven {
     version = "16";
     baseName = "spice-parent";
@@ -321,6 +465,22 @@ rec {
     type = "pom";
   };
 
+  sonatypeSpiceParent_17 = fetchMaven {
+    version = "17";
+    baseName = "spice-parent";
+    package = "/org/sonatype/spice";
+    sha512 = "1jqqp5xylm9bjz33wab7mj49xqczvkhpp4aysrcngszxmil61kanpjmn5ks5r0hq4waj0bqnr91p2p9a7ylqnqjs6ib1x9psl5c9cyw";
+    type = "pom";
+  };
+
+  surefire_2_12_4 = fetchMaven {
+    version = "2.12.4";
+    baseName = "surefire";
+    package = "/org/apache/maven/surefire";
+    sha512 = "1zyppjqqwpzcp16g7v49r9fsgdvrny325r583kpis5497ic0qbcczxn53x7s1hnmhgcs33dr0k3alrwl7m574lm2qdgj0s8x18pl6gb";
+    type = "pom";
+  };
+
   surefire_2_17 = fetchMaven {
     version = "2.17";
     baseName = "surefire";
diff --git a/pkgs/top-level/java-packages.nix b/pkgs/top-level/java-packages.nix
index 760dd01e7324..a777d57ec2cc 100644
--- a/pkgs/top-level/java-packages.nix
+++ b/pkgs/top-level/java-packages.nix
@@ -25,29 +25,43 @@ in {
   inherit (callPackage ../development/java-modules/apache/commons-lang.nix { inherit fetchMaven; })
     commonsLang_2_3;
 
+  inherit (callPackage ../development/java-modules/findbugs/jsr305.nix { inherit fetchMaven; })
+    findbugsJsr305_2_0_1;
+
   inherit (callPackage ../development/java-modules/hamcrest/core.nix { inherit fetchMaven; })
     hamcrestCore_1_3;
 
-  inherit (callPackage ../development/java-modules/junit { inherit mavenbuild; })
+  inherit (callPackage ../development/java-modules/junit { inherit mavenbuild fetchMaven; })
+    junit_3_8_1
     junit_4_12;
 
+  inherit (callPackage ../development/java-modules/maven/archiver.nix { inherit fetchMaven; })
+    mavenArchiver_2_5;
+
   inherit (callPackage ../development/java-modules/maven/artifact.nix { inherit fetchMaven; })
+    mavenArtifact_2_0_6
     mavenArtifact_2_0_9
     mavenArtifact_3_0_3;
 
   inherit (callPackage ../development/java-modules/maven/artifact-manager.nix { inherit fetchMaven; })
-    mavenArtifactManager_2_0_9;
+    mavenArtifactManager_2_0_6
+    mavenArtifactManager_2_0_9
+    mavenArtifactManager_2_2_1;
 
   inherit (callPackage ../development/java-modules/maven/common-artifact-filters.nix { inherit fetchMaven; })
+    mavenCommonArtifactFilters_1_3
     mavenCommonArtifactFilters_1_4;
 
   inherit (callPackage ../development/java-modules/maven/core.nix { inherit fetchMaven; })
-    mavenCore_2_0_9;
+    mavenCore_2_0_6
+    mavenCore_2_0_9
+    mavenCore_2_2_1;
 
   inherit (callPackage ../development/java-modules/maven/dependency-tree.nix { inherit fetchMaven; })
     mavenDependencyTree_2_1;
 
   inherit (callPackage ../development/java-modules/maven/doxia-sink-api.nix { inherit fetchMaven; })
+    mavenDoxiaSinkApi_1_0_alpha7
     mavenDoxiaSinkApi_1_0_alpha10;
 
   inherit (callPackage ../development/java-modules/maven/enforcer.nix { inherit fetchMaven; })
@@ -55,43 +69,98 @@ in {
     mavenEnforcerRules_1_3_1;
 
   inherit (callPackage ../development/java-modules/maven/error-diagnostics.nix { inherit fetchMaven; })
-    mavenErrorDiagnostics_2_0_9;
+    mavenErrorDiagnostics_2_0_6
+    mavenErrorDiagnostics_2_0_9
+    mavenErrorDiagnostics_2_2_1;
+
+  inherit (callPackage ../development/java-modules/maven/filtering.nix { inherit fetchMaven; })
+    mavenFiltering_1_1;
+
+  inherit (callPackage ../development/java-modules/maven-hello { inherit mavenbuild; })
+    mavenHello_1_0;
 
   inherit (callPackage ../development/java-modules/maven/model.nix { inherit fetchMaven; })
+    mavenModel_2_0_6
     mavenModel_2_0_9
+    mavenModel_2_2_1
     mavenModel_3_0_3;
 
   inherit (callPackage ../development/java-modules/maven/monitor.nix { inherit fetchMaven; })
-    mavenMonitor_2_0_9;
+    mavenMonitor_2_0_6
+    mavenMonitor_2_0_9
+    mavenMonitor_2_2_1;
+
+  inherit (callPackage ../development/java-modules/maven/plugin-annotations.nix { inherit fetchMaven; })
+    mavenPluginAnnotations_3_1;
 
   inherit (callPackage ../development/java-modules/maven/plugin-api.nix { inherit fetchMaven; })
     mavenPluginApi_2_0_6
     mavenPluginApi_2_0_9
+    mavenPluginApi_2_2_1
     mavenPluginApi_3_0_3;
 
   inherit (callPackage ../development/java-modules/maven/plugin-descriptor.nix { inherit fetchMaven; })
-    mavenPluginDescriptor_2_0_9;
+    mavenPluginDescriptor_2_0_6
+    mavenPluginDescriptor_2_0_9
+    mavenPluginDescriptor_2_2_1;
 
   inherit (callPackage ../development/java-modules/maven/plugin-parameter-documenter.nix { inherit fetchMaven; })
-    mavenPluginParameterDocumenter_2_0_9;
+    mavenPluginParameterDocumenter_2_0_6
+    mavenPluginParameterDocumenter_2_0_9
+    mavenPluginParameterDocumenter_2_2_1;
 
   inherit (callPackage ../development/java-modules/maven/plugin-registry.nix { inherit fetchMaven; })
-    mavenPluginRegistry_2_0_9;
+    mavenPluginRegistry_2_0_6
+    mavenPluginRegistry_2_0_9
+    mavenPluginRegistry_2_2_1;
 
   inherit (callPackage ../development/java-modules/maven/profile.nix { inherit fetchMaven; })
-    mavenProfile_2_0_9;
+    mavenProfile_2_0_6
+    mavenProfile_2_0_9
+    mavenProfile_2_2_1;
 
   inherit (callPackage ../development/java-modules/maven/project.nix { inherit fetchMaven; })
+    mavenProject_2_0_6
     mavenProject_2_0_9;
 
   inherit (callPackage ../development/java-modules/maven/reporting-api.nix { inherit fetchMaven; })
+    mavenReportingApi_2_0_6
     mavenReportingApi_2_0_9;
 
   inherit (callPackage ../development/java-modules/maven/repository-metadata.nix { inherit fetchMaven; })
-    mavenRepositoryMetadata_2_0_9;
+    mavenRepositoryMetadata_2_0_6
+    mavenRepositoryMetadata_2_0_9
+    mavenRepositoryMetadata_2_2_1;
 
   inherit (callPackage ../development/java-modules/maven/settings.nix { inherit fetchMaven; })
-    mavenSettings_2_0_9;
+    mavenSettings_2_0_6
+    mavenSettings_2_0_9
+    mavenSettings_2_2_1;
+
+  inherit (callPackage ../development/java-modules/maven/shared-incremental.nix { inherit fetchMaven; })
+    mavenSharedIncremental_1_1;
+
+  inherit (callPackage ../development/java-modules/maven/shared-utils.nix { inherit fetchMaven; })
+    mavenSharedUtils_0_1;
+
+  inherit (callPackage ../development/java-modules/maven/surefire-api.nix { inherit fetchMaven; })
+    mavenSurefireApi_2_12_4;
+
+  inherit (callPackage ../development/java-modules/maven/surefire-booter.nix { inherit fetchMaven; })
+    mavenSurefireBooter_2_12_4;
+
+  inherit (callPackage ../development/java-modules/maven/surefire-common.nix { inherit fetchMaven; })
+    mavenSurefireCommon_2_12_4;
+
+  inherit (callPackage ../development/java-modules/maven/toolchain.nix { inherit fetchMaven; })
+    mavenToolchain_1_0
+    mavenToolchain_2_0_9;
+
+  inherit (callPackage ../development/java-modules/plexus/build-api.nix { inherit fetchMaven; })
+    plexusBuildApi_0_0_4;
+
+  inherit (callPackage ../development/java-modules/plexus/compiler-api.nix { inherit fetchMaven; })
+    plexusCompilerApi_2_2;
 
   inherit (callPackage ../development/java-modules/plexus/component-annotations.nix { inherit fetchMaven; })
     plexusComponentAnnotations_1_5_5;
@@ -105,9 +174,14 @@ in {
   inherit (callPackage ../development/java-modules/plexus/interactivity-api.nix { inherit fetchMaven; })
     plexusInteractivityApi_1_0_alpha4;
 
+  inherit (callPackage ../development/java-modules/plexus/interpolation.nix { inherit fetchMaven; })
+    plexusInterpolation_1_13;
+
   inherit (callPackage ../development/java-modules/plexus/utils.nix { inherit fetchMaven; })
     plexusUtils_1_1
+    plexusUtils_1_5_1
     plexusUtils_1_5_8
+    plexusUtils_2_0_5
     plexusUtils_2_0_6
     plexusUtils_3_0;
 }

From f23c44516cfa19fe19cf9764b47d9a520a73853a Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Mon, 31 Oct 2016 10:23:22 -0400
Subject: [PATCH 04/10] Fixup

---
 .../java-modules/build-maven-package.nix      |   6 +-
 .../java-modules/maven-minimal.nix            | 138 ++++++++++++++++++
 .../java-modules/maven/plugin-annotations.nix |   2 +-
 .../java-modules/maven/surefire-api.nix       |   4 +-
 .../development/java-modules/mavenPlugins.nix | 136 +----------------
 pkgs/development/java-modules/poms.nix        |  16 ++
 6 files changed, 164 insertions(+), 138 deletions(-)
 create mode 100644 pkgs/development/java-modules/maven-minimal.nix

diff --git a/pkgs/development/java-modules/build-maven-package.nix b/pkgs/development/java-modules/build-maven-package.nix
index 499a48b22281..9449e3e17b15 100644
--- a/pkgs/development/java-modules/build-maven-package.nix
+++ b/pkgs/development/java-modules/build-maven-package.nix
@@ -4,10 +4,12 @@
 with builtins;
 with lib;
 
-stdenv.mkDerivation rec {
+let
+  mavenMinimal = import ./maven-minimal.nix { inherit pkgs lib stdenv maven; };
+in stdenv.mkDerivation rec {
   inherit mavenDeps src name meta m2Path;
 
-  flatDeps = unique (flatten (mavenDeps ++ pkgs.javaPackages.mavenPlugins.mavenMinimal));
+  flatDeps = unique (flatten (mavenDeps ++ mavenMinimal.mavenMinimal));
 
   propagatedBuildInput = [ maven ] ++ flatDeps;
 
diff --git a/pkgs/development/java-modules/maven-minimal.nix b/pkgs/development/java-modules/maven-minimal.nix
new file mode 100644
index 000000000000..e97a97b69ea6
--- /dev/null
+++ b/pkgs/development/java-modules/maven-minimal.nix
@@ -0,0 +1,138 @@
+{ stdenv, pkgs, lib, maven }:
+
+with pkgs.javaPackages;
+
+let
+  fetchMaven = pkgs.callPackage ./m2install.nix { };
+  poms = import ./poms.nix { inherit fetchMaven; };
+  plugins = import ./mavenPlugins.nix { inherit stdenv lib pkgs maven; };
+in rec {
+# "Minimal"
+  mavenMinimal = lib.flatten
+    (with plugins; [
+    classworlds_1_1
+    commonsCli_1_0
+    findbugsJsr305_2_0_1
+    junit_3_8_1
+    mavenArchiver_2_5
+    mavenArtifact_2_0_6
+    mavenArtifact_2_0_9
+    mavenArtifactManager_2_0_6
+    mavenArtifactManager_2_0_9
+    mavenArtifactManager_2_2_1
+    mavenClean_2_5
+    mavenCompiler_3_1
+    mavenCore_2_0_6
+    mavenCore_2_0_9
+    mavenCore_2_2_1
+    mavenDoxiaSinkApi_1_0_alpha7
+    mavenErrorDiagnostics_2_0_6
+    mavenErrorDiagnostics_2_0_9
+    mavenErrorDiagnostics_2_2_1
+    mavenFiltering_1_1
+    mavenInstall_2_4
+    mavenJar_2_4
+    mavenModel_2_0_6
+    mavenModel_2_0_9
+    mavenModel_2_2_1
+    mavenMonitor_2_0_6
+    mavenMonitor_2_0_9
+    mavenMonitor_2_2_1
+    mavenPluginDescriptor_2_0_6
+    mavenPluginDescriptor_2_0_9
+    mavenPluginDescriptor_2_2_1
+    mavenPluginParameterDocumenter_2_0_6
+    mavenPluginParameterDocumenter_2_0_9
+    mavenPluginParameterDocumenter_2_2_1
+    mavenProfile_2_0_6
+    mavenProfile_2_0_9
+    mavenProfile_2_2_1
+    mavenProject_2_0_6
+    mavenProject_2_0_9
+    mavenPluginAnnotations_3_1
+    mavenPluginApi_2_0_6
+    mavenPluginApi_2_0_9
+    mavenPluginApi_2_2_1
+    mavenPluginRegistry_2_0_6
+    mavenPluginRegistry_2_0_9
+    mavenPluginRegistry_2_2_1
+    mavenReportingApi_2_0_6
+    mavenReportingApi_2_0_9
+    mavenRepositoryMetadata_2_0_6
+    mavenRepositoryMetadata_2_0_9
+    mavenRepositoryMetadata_2_2_1
+    mavenResources_2_6
+    mavenSettings_2_0_6
+    mavenSettings_2_0_9
+    mavenSettings_2_2_1
+    mavenSharedIncremental_1_1
+    mavenSharedUtils_0_1
+    mavenSurefire_2_12_4
+    mavenSurefireApi_2_12_4
+    mavenSurefireBooter_2_12_4
+    mavenSurefireCommon_2_12_4
+    mavenToolchain_1_0
+    mavenToolchain_2_0_9
+    plexusBuildApi_0_0_4
+    plexusCompilerApi_2_2
+    plexusContainerDefault_1_0_alpha9_stable1
+    plexusInteractivityApi_1_0_alpha4
+    plexusInterpolation_1_13
+    plexusUtils_1_5_1
+    plexusUtils_2_0_5
+    plexusUtils_3_0
+    ])
+    ++
+    (with
+    poms;
+    [
+    apache_3
+    apache_4
+    apache_5
+    apache_6
+    apache_9
+    apache_10
+    apache_11
+    apache_13
+    doxia_1_0_alpha7
+    maven_2_0_6
+    maven_2_0_9
+    maven_2_2_1
+    mavenParent_5
+    mavenParent_8
+    mavenParent_11
+    mavenParent_13
+    mavenParent_21
+    mavenParent_22
+    mavenParent_23
+    mavenPlugins_22
+    mavenPlugins_23
+    mavenPlugins_24
+    mavenPluginTools_3_1
+    mavenReporting_2_0_6
+    mavenReporting_2_0_9
+    mavenSharedComponents_12
+    mavenSharedComponents_17
+    mavenSharedComponents_18
+    mavenSharedComponents_19
+    plexus_1_0_4
+    plexus_1_0_11
+    plexus_2_0_3
+    plexus_2_0_6
+    plexus_2_0_7
+    plexus_3_3_1
+    plexusCompiler_2_2
+    plexusComponents_1_1_15
+    plexusComponents_1_3_1
+    plexusComponentAnnotations_1_5_5
+    plexusContainers_1_0_3
+    plexusContainers_1_5_5
+    sonatypeForgeParent_3
+    sonatypeForgeParent_5
+    sonatypeForgeParent_10
+    sonatypeSpiceParent_10
+    sonatypeSpiceParent_16
+    sonatypeSpiceParent_17
+    surefire_2_12_4
+    ]);
+}
diff --git a/pkgs/development/java-modules/maven/plugin-annotations.nix b/pkgs/development/java-modules/maven/plugin-annotations.nix
index da7d52242a3b..c00d0a4f9a21 100644
--- a/pkgs/development/java-modules/maven/plugin-annotations.nix
+++ b/pkgs/development/java-modules/maven/plugin-annotations.nix
@@ -1,7 +1,7 @@
 { fetchMaven }:
 
 rec {
-  mavenPluginAnnotations = map (obj: fetchMaven {
+  mavenPluginAnnotations_3_1 = map (obj: fetchMaven {
     version = "3.1";
     baseName = "maven-plugin-annotations";
     package = "/org/apache/maven/plugin-tools";
diff --git a/pkgs/development/java-modules/maven/surefire-api.nix b/pkgs/development/java-modules/maven/surefire-api.nix
index b696beae4c46..550490a32b1b 100644
--- a/pkgs/development/java-modules/maven/surefire-api.nix
+++ b/pkgs/development/java-modules/maven/surefire-api.nix
@@ -1,9 +1,9 @@
 { fetchMaven }:
 
 rec {
-  mavenSurefireBooter_2_12_4 = map (obj: fetchMaven {
+  mavenSurefireApi_2_12_4 = map (obj: fetchMaven {
     version = "2.12.4";
-    baseName = "maven-surefire-booter";
+    baseName = "maven-surefire-api";
     package = "/org/apache/maven/surefire";
     sha512 = obj.sha512;
     type = obj.type;
diff --git a/pkgs/development/java-modules/mavenPlugins.nix b/pkgs/development/java-modules/mavenPlugins.nix
index 15be1594117f..7c564037108a 100644
--- a/pkgs/development/java-modules/mavenPlugins.nix
+++ b/pkgs/development/java-modules/mavenPlugins.nix
@@ -1,142 +1,12 @@
-{ pkgs, stdenv, lib, maven, fetchurl }:
+{ pkgs, stdenv, lib, maven }:
 
+with pkgs;
 with pkgs.javaPackages;
 
 let
-  mavenbuild = pkgs.callPackage ./build-maven-package.nix { };
   fetchMaven = pkgs.callPackage ./m2install.nix { };
-  poms = import ./poms.nix { inherit fetchMaven; };
 in rec {
-  inherit mavenbuild fetchMaven poms;
-
-  # "Minimal"
-  mavenMinimal = lib.flatten
-[
-classworlds_1_1
-commonsCli_1_0
-findbugsJsr305_2_0_1
-junit_3_8_1
-mavenArchiver_2_5
-mavenArtifact_2_0_6
-mavenArtifact_2_0_9
-mavenArtifactManager_2_0_6
-mavenArtifactManager_2_0_9
-mavenArtifactManager_2_2_1
-mavenClean_2_5
-mavenCompiler_3_1
-mavenCore_2_0_6
-mavenCore_2_0_9
-mavenCore_2_2_1
-mavenDoxiaSinkApi_1_0_alpha7
-mavenErrorDiagnostics_2_0_6
-mavenErrorDiagnostics_2_0_9
-mavenErrorDiagnostics_2_2_1
-mavenFiltering_1_1
-mavenInstall_2_4
-mavenJar_2_4
-mavenModel_2_0_6
-mavenModel_2_0_9
-mavenModel_2_2_1
-mavenMonitor_2_0_6
-mavenMonitor_2_0_9
-mavenMonitor_2_2_1
-mavenPluginDescriptor_2_0_6
-mavenPluginDescriptor_2_0_9
-mavenPluginDescriptor_2_2_1
-mavenPluginParameterDocumenter_2_0_6
-mavenPluginParameterDocumenter_2_0_9
-mavenPluginParameterDocumenter_2_2_1
-mavenProfile_2_0_6
-mavenProfile_2_0_9
-mavenProfile_2_2_1
-mavenProject_2_0_6
-mavenProject_2_0_9
-mavenPluginAnnotations_3_1
-mavenPluginApi_2_0_6
-mavenPluginApi_2_0_9
-mavenPluginApi_2_2_1
-mavenPluginRegistry_2_0_6
-mavenPluginRegistry_2_0_9
-mavenPluginRegistry_2_2_1
-mavenReportingApi_2_0_6
-mavenReportingApi_2_0_9
-mavenRepositoryMetadata_2_0_6
-mavenRepositoryMetadata_2_0_9
-mavenRepositoryMetadata_2_2_1
-mavenResources_2_6
-mavenSettings_2_0_6
-mavenSettings_2_0_9
-mavenSettings_2_2_1
-mavenSharedIncremental_1_1
-mavenSharedUtils_0_1
-mavenSurefire_2_12_4
-mavenSurefireApi_2_12_4
-mavenSurefireBooter_2_12_4
-mavenSurefireCommon_2_12_4
-mavenToolchain_1_0
-mavenToolchain_2_0_9
-plexusBuildApi_0_0_4
-plexusCompilerApi_2_2
-plexusContainerDefault_1_0_alpha9_stable1
-plexusInteractivityApi_1_0_alpha4
-plexusInterpolation_1_13
-plexusUtils_1_5_1
-plexusUtils_2_0_5
-plexusUtils_3_0
-]
-++
-(with
-poms;
-[
-apache_3
-apache_4
-apache_5
-apache_6
-apache_9
-apache_10
-apache_11
-apache_13
-doxia_1_0_alpha7
-maven_2_0_6
-maven_2_0_9
-maven_2_2_1
-mavenParent_5
-mavenParent_8
-mavenParent_11
-mavenParent_13
-mavenParent_21
-mavenParent_22
-mavenParent_23
-mavenPlugins_22
-mavenPlugins_23
-mavenPlugins_24
-mavenPluginTools_3_1
-mavenReporting_2_0_6
-mavenReporting_2_0_9
-mavenSharedComponents_12
-mavenSharedComponents_17
-mavenSharedComponents_18
-mavenSharedComponents_19
-plexus_1_0_4
-plexus_1_0_11
-plexus_2_0_3
-plexus_2_0_6
-plexus_2_0_7
-plexus_3_3_1
-plexusCompiler_2_2
-plexusComponents_1_1_15
-plexusComponents_1_3_1
-plexusComponentAnnotations_1_5_5
-plexusContainers_1_0_3
-plexusContainers_1_5_5
-sonatypeForgeParent_3
-sonatypeForgeParent_5
-sonatypeForgeParent_10
-sonatypeSpiceParent_10
-sonatypeSpiceParent_16
-sonatypeSpiceParent_17
-surefire_2_12_4
-]);
+  inherit fetchMaven;
 
   animalSniffer_1_11 = map (obj: fetchMaven {
     version = "1.11";
diff --git a/pkgs/development/java-modules/poms.nix b/pkgs/development/java-modules/poms.nix
index 3e5ef87223f6..18944e27a865 100644
--- a/pkgs/development/java-modules/poms.nix
+++ b/pkgs/development/java-modules/poms.nix
@@ -193,6 +193,22 @@ rec {
     type = "pom";
   };
 
+  mavenParent_11 = fetchMaven {
+    version = "11";
+    baseName = "maven-parent";
+    package = "/org/apache/maven";
+    sha512 = "315cgnn7mvwq5kyrln3nw85x3893zdd4dg267gk9xkig1mwjpa86l6yyd6qnrwxywcrgn0wmn2l781yvwip9rys4dd9jmbma2qhzapp";
+    type = "pom";
+  };
+
+  mavenParent_13 = fetchMaven {
+    version = "13";
+    baseName = "maven-parent";
+    package = "/org/apache/maven";
+    sha512 = "315cgnn7mvwq5kyrln3nw85x3893zdd4dg267gk9xkig1mwjpa86l6yyd6qnrwxywcrgn0wmn2l781yvwip9rys4dd9jmbma2qhzapp";
+    type = "pom";
+  };
+
   mavenParent_15 = fetchMaven {
     version = "15";
     baseName = "maven-parent";

From 8500c2491110031e5582b014691a57b27bc6722a Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Mon, 31 Oct 2016 13:10:26 -0400
Subject: [PATCH 05/10] Finish maven-hello / framework

---
 .../java-modules/apache/commons-lang.nix      |  11 +
 .../java-modules/apache/commons-lang3.nix     |  14 +
 .../apache/commons-logging-api.nix            |  14 +
 .../java-modules/apache/xbean-reflect.nix     |  14 +
 .../java-modules/build-maven-package.nix      |  10 +-
 .../java-modules/classworlds/classworlds.nix  |  11 +
 .../java-modules/google/collections.nix       |  15 +
 .../java-modules/hamcrest/core.nix            |   1 -
 .../java-modules/junit/default.nix            |  11 +
 .../java-modules/log4j/default.nix            |  15 +
 .../java-modules/maven-minimal.nix            | 305 ++++++++++--------
 .../java-modules/maven/archiver.nix           |   4 +-
 .../java-modules/maven/artifact-manager.nix   |   4 +-
 .../java-modules/maven/artifact.nix           |  11 +
 .../maven/common-artifact-filters.nix         |   4 +-
 pkgs/development/java-modules/maven/core.nix  |   4 +-
 .../java-modules/maven/error-diagnostics.nix  |   4 +-
 pkgs/development/java-modules/maven/model.nix |   4 +-
 .../java-modules/maven/monitor.nix            |   4 +-
 .../java-modules/maven/plugin-annotations.nix |   4 +-
 .../java-modules/maven/plugin-api.nix         |   4 +-
 .../java-modules/maven/plugin-descriptor.nix  |   4 +-
 .../maven/plugin-parameter-documenter.nix     |   4 +-
 .../java-modules/maven/plugin-registry.nix    |   4 +-
 .../java-modules/maven/profile.nix            |   4 +-
 .../java-modules/maven/project.nix            |  11 +
 .../maven/repository-metadata.nix             |   4 +-
 .../java-modules/maven/settings.nix           |   4 +-
 .../java-modules/maven/surefire-api.nix       |   6 +-
 .../java-modules/maven/surefire-booter.nix    |   6 +-
 .../java-modules/maven/surefire-common.nix    |   4 +-
 .../java-modules/maven/toolchain.nix          |   4 +-
 .../development/java-modules/mavenPlugins.nix |   2 +-
 .../java-modules/plexus/archiver.nix          |  14 +
 .../java-modules/plexus/classworlds.nix       |  14 +
 .../java-modules/plexus/compiler-javac.nix    |  14 +
 .../java-modules/plexus/compiler-manager.nix  |  14 +
 .../java-modules/plexus/container-default.nix |  22 ++
 .../java-modules/plexus/digest.nix            |  14 +
 .../java-modules/plexus/interpolation.nix     |  33 ++
 pkgs/development/java-modules/plexus/io.nix   |  14 +
 .../development/java-modules/plexus/utils.nix |  77 +++++
 pkgs/development/java-modules/poms.nix        | 174 +++++++++-
 pkgs/top-level/java-packages.nix              |  58 +++-
 44 files changed, 789 insertions(+), 184 deletions(-)
 create mode 100644 pkgs/development/java-modules/apache/commons-lang3.nix
 create mode 100644 pkgs/development/java-modules/apache/commons-logging-api.nix
 create mode 100644 pkgs/development/java-modules/apache/xbean-reflect.nix
 create mode 100644 pkgs/development/java-modules/google/collections.nix
 create mode 100644 pkgs/development/java-modules/log4j/default.nix
 create mode 100644 pkgs/development/java-modules/plexus/archiver.nix
 create mode 100644 pkgs/development/java-modules/plexus/classworlds.nix
 create mode 100644 pkgs/development/java-modules/plexus/compiler-javac.nix
 create mode 100644 pkgs/development/java-modules/plexus/compiler-manager.nix
 create mode 100644 pkgs/development/java-modules/plexus/digest.nix
 create mode 100644 pkgs/development/java-modules/plexus/io.nix

diff --git a/pkgs/development/java-modules/apache/commons-lang.nix b/pkgs/development/java-modules/apache/commons-lang.nix
index eb60d19e8183..8987823e4705 100644
--- a/pkgs/development/java-modules/apache/commons-lang.nix
+++ b/pkgs/development/java-modules/apache/commons-lang.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  commonsLang_2_1 = map (obj: fetchMaven {
+    version = "2.1";
+    baseName = "commons-lang";
+    package = "/commons-lang";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "1hr3q67cn0nk5kn9vdfs8155cw814jf20jk7dsn3cn0a6l2j6dx297z6akz5f62dkkn0nj4pac7z4wvnawisnvzhpg6q6qhwj7wwc8n"; }
+    { type = "jar"; sha512 = "2phbi7q2k3v48gyys7s0yw8xaa9kpczwif5jfqgfarzf7il1r0vplpwgwcnlsxpifjjnap7lw0yq38zp0mbajp7h8p5z0qp7gisa4m3"; }
+  ];
+
   commonsLang_2_3 = map (obj: fetchMaven {
     version = "2.3";
     baseName = "commons-lang";
diff --git a/pkgs/development/java-modules/apache/commons-lang3.nix b/pkgs/development/java-modules/apache/commons-lang3.nix
new file mode 100644
index 000000000000..8b5498f362d4
--- /dev/null
+++ b/pkgs/development/java-modules/apache/commons-lang3.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  commonsLang3_3_1 = map (obj: fetchMaven {
+    version = "3.1";
+    baseName = "commons-lang3";
+    package = "/org/apache/commons";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "0msypmqn5q4sxks97zbvi85rq2zclkyz8j09riqw7c95n96nyv7x3pysi83vdgc53d0lhl4apkp7warl52xq1qzdyjxipjdlhqmhdcw"; }
+    { type = "jar"; sha512 = "3lw2naanwxjqrwgbg5ij6abzlkch0l6bcx44sl4a59m2r5fi2rvmc07pqai2l9kqwql05fyx9h1md5jjh2wzia15rqnvwssprykjwvi"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/apache/commons-logging-api.nix b/pkgs/development/java-modules/apache/commons-logging-api.nix
new file mode 100644
index 000000000000..9aae04e42064
--- /dev/null
+++ b/pkgs/development/java-modules/apache/commons-logging-api.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  commonsLoggingApi_1_1 = map (obj: fetchMaven {
+    version = "1.1";
+    baseName = "commons-logging-api";
+    package = "/commons-logging";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "3fp3d08l6m1xmma6pz7hvkvj5isbnyjimgvxf4plrwqmalifw0ywjbal5r5kmmrdlcda7l49mxdsv43ygglm9g22dzkbhdqlhlrn934"; }
+    { type = "jar"; sha512 = "316dgnyhwai9n8dqjkp9chkkbhkyli9mfbgsj8ch6cdpmzmcvzirnjj7z1xbxm7v8hlybqhyaf5075pxwz3cg1w5ih3rhwjfi19f8dq"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/apache/xbean-reflect.nix b/pkgs/development/java-modules/apache/xbean-reflect.nix
new file mode 100644
index 000000000000..c1e9916443c9
--- /dev/null
+++ b/pkgs/development/java-modules/apache/xbean-reflect.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  xbeanReflect_3_4 = map (obj: fetchMaven {
+    version = "3.4";
+    baseName = "xbean-reflect";
+    package = "/org/apache/xbean";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "1nny6dcwif0kd0kr2l55j2l5rb1aw8l2f2fbhanj6j48zhcz3vv1wx5xi0l6vg4j70y12fxyg1kyn4lq0bx19by19r73k06wlxs001k"; }
+    { type = "jar"; sha512 = "3w22jbm4sii16lzkzwi6hv5zbid5jw8dv356q9hr0pnb8d4gm6ypl2pjqj0brzmpq9pydqya14wk798ddjalqjh25rl2ry9qhjx3hlm"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/build-maven-package.nix b/pkgs/development/java-modules/build-maven-package.nix
index 9449e3e17b15..a056953f9ab3 100644
--- a/pkgs/development/java-modules/build-maven-package.nix
+++ b/pkgs/development/java-modules/build-maven-package.nix
@@ -1,11 +1,11 @@
-{ stdenv, maven, lib, pkgs }:
+{ stdenv, maven, pkgs }:
 { mavenDeps, src, name, meta, m2Path, ... }:
 
 with builtins;
-with lib;
+with stdenv.lib;
 
 let
-  mavenMinimal = import ./maven-minimal.nix { inherit pkgs lib stdenv maven; };
+  mavenMinimal = import ./maven-minimal.nix { inherit pkgs stdenv maven; };
 in stdenv.mkDerivation rec {
   inherit mavenDeps src name meta m2Path;
 
@@ -16,7 +16,10 @@ in stdenv.mkDerivation rec {
   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'';
 
+  phases = [ "unpackPhase" "buildPhase" ];
+
   buildPhase = ''
+    mkdir -p $out/target
     mkdir -p $out/m2/${m2Path}
     ${optionalString (length flatDeps > 0) find}
     ${optionalString (length flatDeps > 0) copy}
@@ -24,5 +27,6 @@ in stdenv.mkDerivation rec {
         <mirror><id>tmpm2</id><url>file://$out/m2</url><mirrorOf>*</mirrorOf></mirror></mirrors>\
         <localRepository>$out/m2</localRepository></settings>" >> $out/m2/settings.xml
     ${maven}/bin/mvn clean install -Dmaven.test.skip=true -gs $out/m2/settings.xml
+    cp -v ./target/*.jar $out/target/
   '';
 }
diff --git a/pkgs/development/java-modules/classworlds/classworlds.nix b/pkgs/development/java-modules/classworlds/classworlds.nix
index a177927d3d68..3a85cc4363ef 100644
--- a/pkgs/development/java-modules/classworlds/classworlds.nix
+++ b/pkgs/development/java-modules/classworlds/classworlds.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  classworlds_1_1_alpha2 = map (obj: fetchMaven {
+    version = "1.1-alpha-2";
+    baseName = "classworlds";
+    package = "/classworlds";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "027b0s13ck41wg75z7bz1zxazdxp56llxlg4z9kp01wys1sbkng8s0i0mxyvjaq61q5lg2gfrxypnzg7vha23vq57hkdhwyksjdcd5c"; }
+    { type = "jar"; sha512 = "36vir8jja85cg7khaf2qjln7m8q5iq0n43vvkxkwwngv67ffpvqqz6j1fscvl16hzb0nf6j9gzkcrgk3mk9jl49vrj3fw7c173m4xzb"; }
+  ];
+
   classworlds_1_1 = map (obj: fetchMaven {
     version = "1.1";
     baseName = "classworlds";
diff --git a/pkgs/development/java-modules/google/collections.nix b/pkgs/development/java-modules/google/collections.nix
new file mode 100644
index 000000000000..9898ddeaf31e
--- /dev/null
+++ b/pkgs/development/java-modules/google/collections.nix
@@ -0,0 +1,15 @@
+{ fetchMaven }:
+
+rec {
+  googleCollections_1_0 = map (obj: fetchMaven {
+    version = "1.0";
+    baseName = "google-collections";
+    package = "/com/google/collections";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3vvgac799ilrmab28ya894jkyq3jj4217ix8mfyxzbkb8v0wy2rpmdbni3irrrdhc9skd0sldlcnfpvs1hjv5v07ajxlm1dbkgvqhap"; }
+    { type = "pom"; sha512 = "38x885cglwmx0chqlzhx83jcrqvnwwr9qj6awx3n0xqp175qznjwn0i94rwxhyj00a7xgvvm9jvwkppwfkcdiyxmimb1z8frdhkkh7p"; }
+  ];
+}
+
diff --git a/pkgs/development/java-modules/hamcrest/core.nix b/pkgs/development/java-modules/hamcrest/core.nix
index 1414dc1fe6bb..104331f6f138 100644
--- a/pkgs/development/java-modules/hamcrest/core.nix
+++ b/pkgs/development/java-modules/hamcrest/core.nix
@@ -1,7 +1,6 @@
 { fetchMaven }:
 
 rec {
-  # Ant build, just fetch the binary
   hamcrestCore_1_3 = map (obj: fetchMaven {
     version = "1.3";
     baseName = "hamcrest-core";
diff --git a/pkgs/development/java-modules/junit/default.nix b/pkgs/development/java-modules/junit/default.nix
index ebb614bb703e..8304b1a8a01b 100644
--- a/pkgs/development/java-modules/junit/default.nix
+++ b/pkgs/development/java-modules/junit/default.nix
@@ -36,6 +36,17 @@ rec {
     { type = "jar"; sha512 = "25yk0lzwk46r867nhrw4hg7cvz28wb8ln9nw1dqrb6zarifl54p4h1mcz90vmih405bsk96g0qb6hn1h4df0fas3f5kma9vxfjryvwf"; }
   ];
 
+  junit_3_8_2 = map (obj: fetchMaven {
+    version = "3.8.2";
+    baseName = "junit";
+    package = "/junit";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "01npyfwl1f44l44x92cvqqcp58sckcjraf78dav6zgag3x6ispd9gz594nhpqckmjw0hlrkbqfxnzdcq1mlsj9rw6zyq4wk5ch8rl5j"; }
+    { type = "jar"; sha512 = "2jcih102666lcm7b23rgs5cd59ww49m78c8mja52mrcm25630zw28rjqkj5lsws18k5jf75div9wkd1sxcvwvq5cvvphgyg7550i8r9"; }
+  ];
+
   junit_4_12 = junitGen {
     mavenDeps = [ mavenPlugins.animalSniffer_1_11 hamcrestCore_1_3 plexusUtils_1_1 ];
     sha512 = "0bbldnf37jl855s1pdx2a518ivfifv75189vsbpylnj8530vnf8z6b2dglkcbcjgr22lp1s4m1nnplz5dmka9sr7vj055p88k27kqw9";
diff --git a/pkgs/development/java-modules/log4j/default.nix b/pkgs/development/java-modules/log4j/default.nix
new file mode 100644
index 000000000000..65aaa41adb14
--- /dev/null
+++ b/pkgs/development/java-modules/log4j/default.nix
@@ -0,0 +1,15 @@
+{ fetchMaven }:
+
+rec {
+  log4j_1_2_12 = map (obj: fetchMaven {
+    version = "1.2.12";
+    baseName = "log4j";
+    package = "/log4j";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "23amz03i51w4vhh2wfq4fppi5qp2rzy0gqz4fdaqg4s3mz0aj86jylp7akj7aprnm28q2y1v4sj0s64qqvakj1vj020hr9y8rrifdga"; }
+    { type = "pom"; sha512 = "0n5w0ywp90lllnyyxhaa7py1gapdw85jnnyyk86rm46k132q1lq6j7rh1mvzw1z01lh7bzb800r0rmgcc1mgn3fjgr9hxlr4ssm7gbx"; }
+  ];
+}
+
diff --git a/pkgs/development/java-modules/maven-minimal.nix b/pkgs/development/java-modules/maven-minimal.nix
index e97a97b69ea6..359060c8dae2 100644
--- a/pkgs/development/java-modules/maven-minimal.nix
+++ b/pkgs/development/java-modules/maven-minimal.nix
@@ -1,138 +1,187 @@
-{ stdenv, pkgs, lib, maven }:
+{ stdenv, pkgs, maven }:
 
+with stdenv.lib;
 with pkgs.javaPackages;
 
 let
   fetchMaven = pkgs.callPackage ./m2install.nix { };
   poms = import ./poms.nix { inherit fetchMaven; };
-  plugins = import ./mavenPlugins.nix { inherit stdenv lib pkgs maven; };
+  plugins = import ./mavenPlugins.nix { inherit stdenv pkgs maven; };
 in rec {
-# "Minimal"
-  mavenMinimal = lib.flatten
-    (with plugins; [
-    classworlds_1_1
-    commonsCli_1_0
-    findbugsJsr305_2_0_1
-    junit_3_8_1
-    mavenArchiver_2_5
-    mavenArtifact_2_0_6
-    mavenArtifact_2_0_9
-    mavenArtifactManager_2_0_6
-    mavenArtifactManager_2_0_9
-    mavenArtifactManager_2_2_1
-    mavenClean_2_5
-    mavenCompiler_3_1
-    mavenCore_2_0_6
-    mavenCore_2_0_9
-    mavenCore_2_2_1
-    mavenDoxiaSinkApi_1_0_alpha7
-    mavenErrorDiagnostics_2_0_6
-    mavenErrorDiagnostics_2_0_9
-    mavenErrorDiagnostics_2_2_1
-    mavenFiltering_1_1
-    mavenInstall_2_4
-    mavenJar_2_4
-    mavenModel_2_0_6
-    mavenModel_2_0_9
-    mavenModel_2_2_1
-    mavenMonitor_2_0_6
-    mavenMonitor_2_0_9
-    mavenMonitor_2_2_1
-    mavenPluginDescriptor_2_0_6
-    mavenPluginDescriptor_2_0_9
-    mavenPluginDescriptor_2_2_1
-    mavenPluginParameterDocumenter_2_0_6
-    mavenPluginParameterDocumenter_2_0_9
-    mavenPluginParameterDocumenter_2_2_1
-    mavenProfile_2_0_6
-    mavenProfile_2_0_9
-    mavenProfile_2_2_1
-    mavenProject_2_0_6
-    mavenProject_2_0_9
-    mavenPluginAnnotations_3_1
-    mavenPluginApi_2_0_6
-    mavenPluginApi_2_0_9
-    mavenPluginApi_2_2_1
-    mavenPluginRegistry_2_0_6
-    mavenPluginRegistry_2_0_9
-    mavenPluginRegistry_2_2_1
-    mavenReportingApi_2_0_6
-    mavenReportingApi_2_0_9
-    mavenRepositoryMetadata_2_0_6
-    mavenRepositoryMetadata_2_0_9
-    mavenRepositoryMetadata_2_2_1
-    mavenResources_2_6
-    mavenSettings_2_0_6
-    mavenSettings_2_0_9
-    mavenSettings_2_2_1
-    mavenSharedIncremental_1_1
-    mavenSharedUtils_0_1
-    mavenSurefire_2_12_4
-    mavenSurefireApi_2_12_4
-    mavenSurefireBooter_2_12_4
-    mavenSurefireCommon_2_12_4
-    mavenToolchain_1_0
-    mavenToolchain_2_0_9
-    plexusBuildApi_0_0_4
-    plexusCompilerApi_2_2
-    plexusContainerDefault_1_0_alpha9_stable1
-    plexusInteractivityApi_1_0_alpha4
-    plexusInterpolation_1_13
-    plexusUtils_1_5_1
-    plexusUtils_2_0_5
-    plexusUtils_3_0
-    ])
-    ++
-    (with
-    poms;
+  # Maven needs all of these to function
+  mavenMinimal = flatten
     [
-    apache_3
-    apache_4
-    apache_5
-    apache_6
-    apache_9
-    apache_10
-    apache_11
-    apache_13
-    doxia_1_0_alpha7
-    maven_2_0_6
-    maven_2_0_9
-    maven_2_2_1
-    mavenParent_5
-    mavenParent_8
-    mavenParent_11
-    mavenParent_13
-    mavenParent_21
-    mavenParent_22
-    mavenParent_23
-    mavenPlugins_22
-    mavenPlugins_23
-    mavenPlugins_24
-    mavenPluginTools_3_1
-    mavenReporting_2_0_6
-    mavenReporting_2_0_9
-    mavenSharedComponents_12
-    mavenSharedComponents_17
-    mavenSharedComponents_18
-    mavenSharedComponents_19
-    plexus_1_0_4
-    plexus_1_0_11
-    plexus_2_0_3
-    plexus_2_0_6
-    plexus_2_0_7
-    plexus_3_3_1
-    plexusCompiler_2_2
-    plexusComponents_1_1_15
-    plexusComponents_1_3_1
-    plexusComponentAnnotations_1_5_5
-    plexusContainers_1_0_3
-    plexusContainers_1_5_5
-    sonatypeForgeParent_3
-    sonatypeForgeParent_5
-    sonatypeForgeParent_10
-    sonatypeSpiceParent_10
-    sonatypeSpiceParent_16
-    sonatypeSpiceParent_17
-    surefire_2_12_4
+      classworlds_1_1_alpha2
+      classworlds_1_1
+      commonsCli_1_0
+      commonsLang_2_1
+      commonsLang3_3_1
+      commonsLoggingApi_1_1
+      findbugsJsr305_2_0_1
+      googleCollections_1_0
+      junit_3_8_1
+      junit_3_8_2
+      log4j_1_2_12
+      mavenArchiver_2_5
+      mavenArtifact_2_0_6
+      mavenArtifact_2_0_9
+      mavenArtifact_2_2_1
+      mavenArtifactManager_2_0_6
+      mavenArtifactManager_2_0_9
+      mavenArtifactManager_2_2_1
+      mavenCommonArtifactFilters_1_3
+      mavenCore_2_0_6
+      mavenCore_2_0_9
+      mavenCore_2_2_1
+      mavenDoxiaSinkApi_1_0_alpha7
+      mavenErrorDiagnostics_2_0_6
+      mavenErrorDiagnostics_2_0_9
+      mavenErrorDiagnostics_2_2_1
+      mavenFiltering_1_1
+      mavenModel_2_0_6
+      mavenModel_2_0_9
+      mavenModel_2_2_1
+      mavenMonitor_2_0_6
+      mavenMonitor_2_0_9
+      mavenMonitor_2_2_1
+      mavenPluginDescriptor_2_0_6
+      mavenPluginDescriptor_2_0_9
+      mavenPluginDescriptor_2_2_1
+      mavenPluginParameterDocumenter_2_0_6
+      mavenPluginParameterDocumenter_2_0_9
+      mavenPluginParameterDocumenter_2_2_1
+      mavenProfile_2_0_6
+      mavenProfile_2_0_9
+      mavenProfile_2_2_1
+      mavenProject_2_0_6
+      mavenProject_2_0_9
+      mavenProject_2_2_1
+      mavenPluginAnnotations_3_1
+      mavenPluginApi_2_0_6
+      mavenPluginApi_2_0_9
+      mavenPluginApi_2_2_1
+      mavenPluginRegistry_2_0_6
+      mavenPluginRegistry_2_0_9
+      mavenPluginRegistry_2_2_1
+      mavenReportingApi_2_0_6
+      mavenReportingApi_2_0_9
+      mavenRepositoryMetadata_2_0_6
+      mavenRepositoryMetadata_2_0_9
+      mavenRepositoryMetadata_2_2_1
+      mavenSettings_2_0_6
+      mavenSettings_2_0_9
+      mavenSettings_2_2_1
+      mavenSharedIncremental_1_1
+      mavenSharedUtils_0_1
+      mavenSurefireApi_2_12_4
+      mavenSurefireBooter_2_12_4
+      mavenSurefireCommon_2_12_4
+      mavenToolchain_1_0
+      mavenToolchain_2_0_9
+      plexusArchiver_2_1
+      plexusBuildApi_0_0_4
+      plexusClassworlds_2_2_2
+      plexusCompilerApi_2_2
+      plexusCompilerJavac_2_2
+      plexusCompilerManager_2_2
+      plexusComponentAnnotations_1_5_5
+      plexusContainerDefault_1_0_alpha9
+      plexusContainerDefault_1_0_alpha9_stable1
+      plexusContainerDefault_1_5_5
+      plexusDigest_1_0
+      plexusInteractivityApi_1_0_alpha4
+      plexusInterpolation_1_11
+      plexusInterpolation_1_12
+      plexusInterpolation_1_13
+      plexusInterpolation_1_15
+      plexusIo_2_0_2
+      plexusUtils_1_0_4
+      plexusUtils_1_4_1
+      plexusUtils_1_4_5
+      plexusUtils_1_5_1
+      plexusUtils_1_5_5
+      plexusUtils_1_5_8
+      plexusUtils_1_5_15
+      plexusUtils_2_0_5
+      plexusUtils_3_0
+      plexusUtils_3_0_5
+      plexusUtils_3_0_8
+      xbeanReflect_3_4
+    ] ++ (with plugins; [
+      mavenClean_2_5
+      mavenCompiler_3_1
+      mavenInstall_2_4
+      mavenJar_2_4
+      mavenResources_2_6
+      mavenSurefire_2_12_4
+    ]) ++ (with poms; [
+      apache_3
+      apache_4
+      apache_5
+      apache_6
+      apache_9
+      apache_10
+      apache_11
+      apache_13
+      backportUtilConcurrent_3_1
+      commonsParent_22
+      doxia_1_0_alpha7
+      googleParent_1
+      jclOverSlf4j_1_5_6
+      maven_2_0_6
+      maven_2_0_9
+      maven_2_2_1
+      mavenParent_5
+      mavenParent_8
+      mavenParent_11
+      mavenParent_13
+      mavenParent_21
+      mavenParent_22
+      mavenParent_23
+      mavenPlugins_22
+      mavenPlugins_23
+      mavenPlugins_24
+      mavenPluginTools_3_1
+      mavenReporting_2_0_6
+      mavenReporting_2_0_9
+      mavenSharedComponents_12
+      mavenSharedComponents_17
+      mavenSharedComponents_18
+      mavenSharedComponents_19
+      plexus_1_0_4
+      plexus_1_0_8
+      plexus_1_0_11
+      plexus_2_0_2
+      plexus_2_0_3
+      plexus_2_0_6
+      plexus_2_0_7
+      plexus_3_0_1
+      plexus_3_1
+      plexus_3_2
+      plexus_3_3_1
+      plexusCipher_1_4
+      plexusCompiler_2_2
+      plexusCompilers_2_2
+      plexusComponents_1_1_7
+      plexusComponents_1_1_14
+      plexusComponents_1_1_15
+      plexusComponents_1_1_19
+      plexusComponents_1_3_1
+      plexusContainers_1_0_3
+      plexusContainers_1_5_5
+      plexusSecDispatcher_1_3
+      slf4jApi_1_5_6
+      slf4jJdk14_1_5_6
+      slf4jParent_1_5_6
+      sonatypeForgeParent_3
+      sonatypeForgeParent_4
+      sonatypeForgeParent_5
+      sonatypeForgeParent_10
+      sonatypeSpiceParent_10
+      sonatypeSpiceParent_12
+      sonatypeSpiceParent_16
+      sonatypeSpiceParent_17
+      surefire_2_12_4
+      xbean_3_4
     ]);
 }
diff --git a/pkgs/development/java-modules/maven/archiver.nix b/pkgs/development/java-modules/maven/archiver.nix
index 790e7894bff1..ecab1f1e99ce 100644
--- a/pkgs/development/java-modules/maven/archiver.nix
+++ b/pkgs/development/java-modules/maven/archiver.nix
@@ -8,7 +8,7 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "jar"; sha512 = "3kkv5kf3k5in69aplawkr0cr2cviyjgf8k6r6qvgxk53i3jmh7qylzrwkrd9bxclkjkgyg77cffxm48qhxm9pyqncdbwjldsmmdfb4f"; }
-    { type = "pom"; sha512 = "37kvfxcpfajjn9lmvh5kay4y61ri1190hxxgiil8fqfvmvcm02jcqzfi4ry0nzc80g5fsarsd3s2ns2d8l0lnqjp28nn51dixm9a55w"; }
+    { type = "jar"; sha512 = "0wx6248rn0821nnag659mm1n77r56chgx2lr26x81l7apx4zkc2nidjzy2d73snkir98h9bmcz09wnx21pkrq8mk50x7mjgkc0yziky"; }
+    { type = "pom"; sha512 = "1rfnwxnk45084rdc52a17bmg8zfyylq1m38wvp956xy455abjvxpnp7il7xpkq6wv16f3bq5yx35hk1b9nycw19w6123rz4v5cs3b0b"; }
   ];
 }
diff --git a/pkgs/development/java-modules/maven/artifact-manager.nix b/pkgs/development/java-modules/maven/artifact-manager.nix
index 7f0a9226e877..031bd37eb6fa 100644
--- a/pkgs/development/java-modules/maven/artifact-manager.nix
+++ b/pkgs/development/java-modules/maven/artifact-manager.nix
@@ -30,7 +30,7 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "jar"; sha512 = "1vvxf2dannx9p2qvlbmrxfni5mc0f3722p3bcdz6bk3z4dhb2hlw2wx17nvirq5r3k43azgp13mg0638saz7v1g23f07n9yzm979f0p"; }
-    { type = "pom"; sha512 = "2v7371gsarjb4s2bp5vclqgdg82mh7nzy7af31g9z20q2r6ndw024xa8bpcxp227yv83lpawbhq0ysg0glnw9ql54100h9hbllam0p8"; }
+    { type = "jar"; sha512 = "04i9c4k5diyqz8hn20sxvrqkqrxxm7wxqh7xgyk3dm1hwhrqy3h29irvpb335kp8i0sxljz2p2a9cmjpx9wyl0266bj5y313whmfkr5"; }
+    { type = "pom"; sha512 = "02ryc46in725q4y11l1kmy6ra01wjnfq5gqwic005wc090l2j39kn5drvn3av6g7413v9x0cksy8qcbagc2jnz6wwxn8z2g5krynw6z"; }
   ];
 }
diff --git a/pkgs/development/java-modules/maven/artifact.nix b/pkgs/development/java-modules/maven/artifact.nix
index 12876f53d5ae..1cbb347baf4e 100644
--- a/pkgs/development/java-modules/maven/artifact.nix
+++ b/pkgs/development/java-modules/maven/artifact.nix
@@ -23,6 +23,17 @@ rec {
     { type = "pom"; sha512 = "0g0cbqihzxyaa1b0z9a7qb8lkhcm8bzxi7qnqaab2n2zaaql6jyy7cf4z4yzqw3yfj7ylqvydiwp32j2c7nqacyx0hmcydqkqg46kxv"; }
   ];
 
+  mavenArtifact_2_2_1 = map (obj: fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-artifact";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1wfffq39ay1cdzany6x0d6h7icdqrvmj4py35a8i2aw94bc8mf6cam7lf8z7jjckhrnb7yxbqz6pj8sxsgpkwnl2q4flqaczr8nnx4j"; }
+    { type = "pom"; sha512 = "099hkdbccd9cf6w64c37z1b2i54h4y0bfx5n56birikgy3s92rrl4x454gvw3wnrpvhkikwvdyw9dv03w40rn50kdwgy0mxc3zgs6l4"; }
+  ];
+
   mavenArtifact_3_0_3 = map (obj: fetchMaven {
     version = "3.0.3";
     baseName = "maven-artifact";
diff --git a/pkgs/development/java-modules/maven/common-artifact-filters.nix b/pkgs/development/java-modules/maven/common-artifact-filters.nix
index e0ee7e6a59ed..2b72293ac939 100644
--- a/pkgs/development/java-modules/maven/common-artifact-filters.nix
+++ b/pkgs/development/java-modules/maven/common-artifact-filters.nix
@@ -8,8 +8,8 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "pom"; sha512 = "21wyk4llwjyanlggy281f9n0sjshjqvd322lbhxmzn42cd9vmj0s6xih82jwqlkcxkypwymyj1gl7van55ibd98p1jjjvr93gs1cn14"; }
-    { type = "jar"; sha512 = "1bv4lp1a8sb79almnygiq0pmm0fdhy9pyakp6xhz91b4v1cqg03sb586yc4lg2934yv4jjbybqjbh4l0y3kgnanjbxdxdgxgyf14iif"; }
+    { type = "pom"; sha512 = "0kr47rinzfyir5lfzp74r6dbbrcddrxdyic7yf571jfzzlwappy77bhrdchaz3c5w94pz1vq6is6yy5nfawpgb2zr6jpi5k552cf1fz"; }
+    { type = "jar"; sha512 = "060siqwk0mscxznl05lzyp72hqr9jr23l3fa9k1kdyks1hghw76cp01jbfj9ijy81n62vb6am98c1695mzpgf453kw1gxp40mwv0ryh"; }
   ];
 
   mavenCommonArtifactFilters_1_4 = map (obj: fetchMaven {
diff --git a/pkgs/development/java-modules/maven/core.nix b/pkgs/development/java-modules/maven/core.nix
index 7f186503d31b..d135bd28657e 100644
--- a/pkgs/development/java-modules/maven/core.nix
+++ b/pkgs/development/java-modules/maven/core.nix
@@ -30,7 +30,7 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "pom"; sha512 = "1a17qcd05v08jpd9ah650kbmrdxrxjfl2jgx9fnc89x4ahzmml9fr2qal0pwnn0sw3g3j1cqbry9lwq5hzja6x779s90hqrb72s49l1"; }
-    { type = "jar"; sha512 = "0qp0kns07h4j7d67z0j09kjn0hwf6k6iz4vp2pmisx131f98acm516y8ca35ly7pp6zn9mdk3c4nh9c0rd7xnqvi12ijqrfvg01dri2"; }
+    { type = "pom"; sha512 = "3rph4ghz7y0a8a6g6h7hr470swyj99y70rwm9ccv40qjc6gxjrckgyax0ihz50x4gyihvpbz5nl046r1qdq4r57rwx0x81s4wns0vf2"; }
+    { type = "jar"; sha512 = "1dxfcyic0skz4pm4w5pxbvligyl9pif78lk915pdhzia16b54c65ffk832zs7d774ynjfxrgzpbicvldsdb1wmi15vfgxn421vynbjj"; }
   ];
 }
diff --git a/pkgs/development/java-modules/maven/error-diagnostics.nix b/pkgs/development/java-modules/maven/error-diagnostics.nix
index c8993f1f0c9c..8f3cd0a4485d 100644
--- a/pkgs/development/java-modules/maven/error-diagnostics.nix
+++ b/pkgs/development/java-modules/maven/error-diagnostics.nix
@@ -30,7 +30,7 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "jar"; sha512 = "3czdrv2s1gafclm57m5qxw3aaxrm3r3z9yggscxg60fk0hn6jlpygclghkrl2g7c8ggdqdd01y6zcj1wgzq32yp1cd4s3kakf2y25dm"; }
-    { type = "pom"; sha512 = "3l0cpg0ssivfnadffc68cnac65vpfpl0qa9a4ik82jxcwhfa00337jxz37vyqaqs1vjrvd2cqhmjayddwkpwc8aqnz3nr0rlqnqzm7g"; }
+    { type = "jar"; sha512 = "3znssb9y54405gpxmz5cmjzq0hvs3hp77vqfwnxarghsyz52cwfkjix22a3g75a5aqspxlwdgd86lsfm6qvyxzjlvlcqa1m0yrbjbr7"; }
+    { type = "pom"; sha512 = "39hx14ad5g3jyxbvsmx22l2g8asnax5ym3r0n5dqiqh8pk9zwy2icgsji64kcvrdx48m2dr5blhpp7r2mw4n7si0rgvmmkkpdvzm44m"; }
   ];
 }
diff --git a/pkgs/development/java-modules/maven/model.nix b/pkgs/development/java-modules/maven/model.nix
index 34832c371d5f..41b2458550d4 100644
--- a/pkgs/development/java-modules/maven/model.nix
+++ b/pkgs/development/java-modules/maven/model.nix
@@ -30,8 +30,8 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "jar"; sha512 = "14pxgdcim20x9lisf510nazzlcjxv9fpqabkdn0d86qa7d9270m4fmya5crasx2np9h0gxl407d77vcjf99fdxizg7i32w35yljqp3z"; }
-    { type = "pom"; sha512 = "2vvyawhfq0gwa54ir5l2drcfxphkd47ghwgz89v3vsqgjry714vp01pa5a6yjlwfd45mknyrb71ws6dki4zjgzhdm09ck7cxg5qkpr9"; }
+    { type = "jar"; sha512 = "1f9ndvsxpiyybmr5p4pl0xrvxap17grad10vr0pskvx8g8phy7w7kmihhg8gd8m91nbikpaqycm54dp5xmhqzyq85dqapxbiy2m599v"; }
+    { type = "pom"; sha512 = "11imkxiw9wbgnv7zpghdmgpf02v668z78xr5v0cqyay88ph7wjbscwllbgx3v6rayffx64jbhlvsw97m9sdncrfih2c9wkvfp5m48kn"; }
   ];
 
   mavenModel_3_0_3 = map (obj: fetchMaven {
diff --git a/pkgs/development/java-modules/maven/monitor.nix b/pkgs/development/java-modules/maven/monitor.nix
index f127efba210c..699d34bbf939 100644
--- a/pkgs/development/java-modules/maven/monitor.nix
+++ b/pkgs/development/java-modules/maven/monitor.nix
@@ -30,7 +30,7 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "jar"; sha512 = "2cxspfhf3sbz68y1kjqhw2lny6s1f1kf8sfad6f1qp653g4213c9yy7y3qk9szp528866vw7daa9gbymxd66k3bm09g1q4kgnkg5wn3"; }
-    { type = "pom"; sha512 = "0h9brjzkvxfmk549wmq4mw71yhhf1qb1diin9rnsc5nlvh189k60088b5pcc14324gffkrvdghivfy8spjci5izmay87qk7hfsg2lxc"; }
+    { type = "jar"; sha512 = "20yjvzy683ngrpkng4nv82vw081mwsqrmdmlsd66axj9w0sjk4s1d87d3b3jdjhqk4jn4f7vnm644awv17g9pxqvfk1shsn83lbnvi2"; }
+    { type = "pom"; sha512 = "1pqh6viikr8py8spmp1l55rcsqizsa1cv6kpycmpikj59bnxhd1kqj24rhn485ifam9i90w0p5yywmgg3fmvc09byfnfl5z2lf8j5dj"; }
   ];
 }
diff --git a/pkgs/development/java-modules/maven/plugin-annotations.nix b/pkgs/development/java-modules/maven/plugin-annotations.nix
index c00d0a4f9a21..782e3e141006 100644
--- a/pkgs/development/java-modules/maven/plugin-annotations.nix
+++ b/pkgs/development/java-modules/maven/plugin-annotations.nix
@@ -8,7 +8,7 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "pom"; sha512 = "17zyw3j4zbg1hhj18i4q1f0r8gdxl3q9x5ksyqlyr0mrw2sadc6lvbbhyp3l7vsbddl4bgdx36gwvjp5d97gbmk1nbpi1vabadfhq76"; }
-    { type = "jar"; sha512 = "0rk2nzkwcrkfy3vs0zl0l2lxp3w4hkwxrypisbivv5al7sc8lbzls6jgpp3h5gx9kk4scjj24qf5vyimnbadj63rvqffg581fs2zgl9"; }
+    { type = "pom"; sha512 = "2q1y622vaks1y2qjbq4005jmi41hpkivsrnmkf5kr3zndz4d6ai47d90jwr70pby8xqqsj461baljcjsicl6rrbq0v9ppyryr13q828"; }
+    { type = "jar"; sha512 = "1jd8b32kl9kh4dxpdg5i9qf3haqc5br0mz8bl1ri4hb9qgwkzsijvx6jr7pv9zgplanwvgca3lhpgzsgs03n8jlqnbxbmgsv1pl93zb"; }
   ];
 }
diff --git a/pkgs/development/java-modules/maven/plugin-api.nix b/pkgs/development/java-modules/maven/plugin-api.nix
index ed791a86955f..b06b83a8e944 100644
--- a/pkgs/development/java-modules/maven/plugin-api.nix
+++ b/pkgs/development/java-modules/maven/plugin-api.nix
@@ -30,8 +30,8 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "pom"; sha512 = "23qj23k049jz4mp77h2wj4mnjqszb99l4xvxas93cpnbdl51a5s0d0rsg60a8zg0ic04n6fr8nig0vvmmcsggx93a96w4p3na97q30n"; }
-    { type = "jar"; sha512 = "0hvl32k09wr34b6v0wl27y6353mx3afsgwyfw0vpx5aa5b8wiw86vlbknh3kjl43zp2ffxq6b4c7n07jq3y2wczz08gscs5apszhj9q"; }
+    { type = "pom"; sha512 = "25dqpzywbqck1za612d3wqxk61lz92rsk8nvb3arfk2wafw8h5janxy831ikikk34af8wrckkrhgn8smvksj8smyqkfkr5xkga4ywbw"; }
+    { type = "jar"; sha512 = "18wx59j3k2pgy6i5abxpl6x2glp51jnf2w2dcx9yxfh0qx809gbkad2ikkdaihhzzvipf2ly3xhhnpj0vbkyycnahn4lvl5ahj76g4q"; }
   ];
 
   mavenPluginApi_3_0_3 = map (obj: fetchMaven {
diff --git a/pkgs/development/java-modules/maven/plugin-descriptor.nix b/pkgs/development/java-modules/maven/plugin-descriptor.nix
index 397a7610cfe2..0a60032125ca 100644
--- a/pkgs/development/java-modules/maven/plugin-descriptor.nix
+++ b/pkgs/development/java-modules/maven/plugin-descriptor.nix
@@ -30,7 +30,7 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "jar"; sha512 = "0q9jw44v1mi489bqmdvj7jpv753vdp9jzp50ky6pd912x190spkw6ccmpc87azmwsf131d4h0k0fqi6iidl9ip22a8rwaa22yq7gxi8"; }
-    { type = "pom"; sha512 = "0c4hrb6qhi8wxw7acyphv6l33973vhvg7vjknc3bx8bg36404ky9k78q79r3p2an2886hdfayb0l7wji86bq4q8464754gbx02ci7r8"; }
+    { type = "jar"; sha512 = "34pf7z07gba3a3mvn3q3324bfrlzz01ycf02a31m2daxr12427hczz3ml4jd0gjsjj36qwic89wpcb7p34px3lvgkvy1d5hz0ky6nh6"; }
+    { type = "pom"; sha512 = "2z3kchasac2jbw1n0zq6d5ym57yw6si7d5i7qhz81q3ripv7r19is4d459idymgcqgpdp98zaqg7dbcbz72d0p6k9g8ngaqgk2iml0x"; }
   ];
 }
diff --git a/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix b/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix
index 3fd437441a3f..82b16e616204 100644
--- a/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix
+++ b/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix
@@ -30,7 +30,7 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "jar"; sha512 = "0djr58wp7a93p96sn0k24d6liabd7a4qvsd0p7lk88ws3jwfw5bqh6d0a3fyc86fkask1wi7krrvsm7i6yiw1f1r0d6xjzj8fx5m4kz"; }
-    { type = "pom"; sha512 = "39mhwcxwcqgy6pk3qlabs1b8k8fqvkps6r1zb1n7phfwh4dklngyqdrxh90j3wjg3692l7as1k0439z2x124wlh6bzpv83jmx64jiyh"; }
+    { type = "jar"; sha512 = "3fp8c3mz9w83r497mx8lrb3lb65v9m2hrqjs2kq7hdzg99rcgwcflg3dcv5bg89xf8vhr853zm702l3s40dqq41ys69g4f1h0ksdkld"; }
+    { type = "pom"; sha512 = "392c3zmdvwbz7iakaf93bk82s4la0wr8dj88vz2ipsbakmvqk82hs4r6jkpx7mkl04qhrpk4n4d7gl1gllhkyqapvdddf5qvp6a6b5q"; }
   ];
 }
diff --git a/pkgs/development/java-modules/maven/plugin-registry.nix b/pkgs/development/java-modules/maven/plugin-registry.nix
index 7191a377a337..547bda4fc9f4 100644
--- a/pkgs/development/java-modules/maven/plugin-registry.nix
+++ b/pkgs/development/java-modules/maven/plugin-registry.nix
@@ -30,7 +30,7 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "jar"; sha512 = "14mkwxvj0rbj28df9gjnkvr20paayqdmsg0vrzcb23d3xng3zc1fy5hvkifnp7xg73qxpdz0nij56lnnj7q2dqxcnmqvh0vslhc2xja"; }
-    { type = "pom"; sha512 = "0c09imgd44b3pgnj1bjak7xn2z3mpwy9nhbchagfqkicras4djmn2dqwpm1z6p1d4khwx830x9grjrw45przan8lgc7wxzkalnnaqkf"; }
+    { type = "jar"; sha512 = "31kbwqlcwpyvp69sp41hb86dskyr4jp9pb1b43wc23lnk0qlyc712bqrr3qbc6kbl2wfra5fhpr70nfilx6bxsz66zizgdca3pdc0z3"; }
+    { type = "pom"; sha512 = "2i5zj8fmfjdnjl5y91b8m5n8gyiaih4n1i6rn85plibq4n8a42kmxgphvicnn36sgrgmy7la4vrzbaigm2zci857qws52j9p16hzv9c"; }
   ];
 }
diff --git a/pkgs/development/java-modules/maven/profile.nix b/pkgs/development/java-modules/maven/profile.nix
index bcaae06b1f99..d5e79d13c2c2 100644
--- a/pkgs/development/java-modules/maven/profile.nix
+++ b/pkgs/development/java-modules/maven/profile.nix
@@ -30,7 +30,7 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "jar"; sha512 = "2v315cv62k3lmi23msk5rj9bijsafcajw7053jdzzk4zv03vdpdndm5cr995azrpdcvkcdq2m8zh5pdf44nzcdf2rvpm4nxdc2wr5rl"; }
-    { type = "pom"; sha512 = "05iif04frjgbmg7zb3jygn9av2ja48vs2z35b2zrlmgf3s1fxqlr4wxylrrmmk8r0hvg4qmg5j0inm414n0v4ipn08hrpzik5nhdfgy"; }
+    { type = "jar"; sha512 = "13lgj34xf9wgwx87z5gbqmq3f3l2dqprk68ji1vig49k2ngxfa8xz3a8qh7gbl9l234gkbdl3dcsafr158bi0m3n5myrczbz0wfcia7"; }
+    { type = "pom"; sha512 = "0m6fqn507a36rpk0bzwv2zzl1gngcf3h4lrbw8abkmyq7npaqcg57fb5wy6cm30r2cjv2vffrdi142wjxzvrqdr08lmi5nf57gi1sng"; }
   ];
 }
diff --git a/pkgs/development/java-modules/maven/project.nix b/pkgs/development/java-modules/maven/project.nix
index 142a311feed0..880f821f76c3 100644
--- a/pkgs/development/java-modules/maven/project.nix
+++ b/pkgs/development/java-modules/maven/project.nix
@@ -22,4 +22,15 @@ rec {
     { type = "jar"; sha512 = "0laxsz9z48zvx27m395djfl9121jkr7amiv8n07z9nkz9i60wjl52bb7cw6hp6090ba098g8azqpnz8l5i0yj255phy1j6s92ci1i7c"; }
     { type = "pom"; sha512 = "047a0a2bd5fkmg70gzhdiwiwq5dmr84pz6jq9yi5fz44y57ndp7nb72fnkr0p0qcwmry3gj03hk9p2xr4ph53bl1x68j22fnv0f9krq"; }
   ];
+
+  mavenProject_2_2_1 = map (obj: fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-project";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3km1j5jnkyil76817gk37ds8v69fmiz2zh924vnsv8sbaj4bm8rs7n5d5laiyss5ff0p1q9by3k1ai94lw2ambc5pbmm6lz0v71naic"; }
+    { type = "pom"; sha512 = "10mk142nqdaq8nqg6sf4wfaq2ymlf3fs2ay8xjrfp07l68z838b2kmj7s8lvv1qzkcnkcjrg9w2kr1m3i8bqxc68fwd5iqdq674c1p3"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/maven/repository-metadata.nix b/pkgs/development/java-modules/maven/repository-metadata.nix
index 7e29ada05129..7a076a3811ec 100644
--- a/pkgs/development/java-modules/maven/repository-metadata.nix
+++ b/pkgs/development/java-modules/maven/repository-metadata.nix
@@ -30,7 +30,7 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "jar"; sha512 = "2np435shcca1jka1gdjxs4bzzayfnfzncpnxhlfy59b32vfpvf5v0kca0zgyx7251ghhb2ks2xxd798rbzvr0gzivicwdrnd5x8g0hm"; }
-    { type = "pom"; sha512 = "27b9z80qdkn7p4fs6k87a5i926c3dsr6jmq4rz8dyiml1svqsvvghzz59cby6n8wkx7wn003wk28jzc08x53vbk5zsvcg9ckslxhjyw"; }
+    { type = "jar"; sha512 = "1dhyh2m8kwys6b1pqnyrn9f9a0bm93xgy9d0nyr98sq3v14irmk6kaf91rgrzrgg5b526816gb41gw1i0rdsrjdgnawlml5dm4qqc8g"; }
+    { type = "pom"; sha512 = "3xcvc4rsmxsxadsqczzknyrdvklizbd6wr1ldvkqx0vqwwm89k9brgkvb5bqv5i3g8s3izx1xn4g24ya88qmgr3h231wpjby2nihdvg"; }
   ];
 }
diff --git a/pkgs/development/java-modules/maven/settings.nix b/pkgs/development/java-modules/maven/settings.nix
index 19f0a1ae24d9..b4416607ee9e 100644
--- a/pkgs/development/java-modules/maven/settings.nix
+++ b/pkgs/development/java-modules/maven/settings.nix
@@ -30,7 +30,7 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "jar"; sha512 = "1hy1wz2bb7f9y0rr5961zhalpbwmk0fhw49k0l527w897lz4zw7lnb8xnx530s6hmn58zqj7iwkx4spz2fahps4ss1ryk0601rzgv4a"; }
-    { type = "pom"; sha512 = "3i2nq3r6piwhv265jhsj9hqriw6113vkqllx5s4kd4y2dspjxh6l9xprrw347nkw68904dyq9hdx76fx2nzjd16ldh41pim5lw8r15n"; }
+    { type = "jar"; sha512 = "3fn6wij56cx3knhyn2w5q4bvsl6sm2ad5wxgszpp4mw5jvl5smczz3k6gpg1bnj5m9f0r9w4aahnf64qxpv4v0lv8fd6k6arwzr1lxd"; }
+    { type = "pom"; sha512 = "1vmbcxbrklhsyqhhz5x0skkckghi3lwgpksxi3aw0j57f86h7rk464ww1zppym451pqgqnpyvl83zzkizad5n8y8hrw41hgh1cdn3ij"; }
   ];
 }
diff --git a/pkgs/development/java-modules/maven/surefire-api.nix b/pkgs/development/java-modules/maven/surefire-api.nix
index 550490a32b1b..e7a561814e4b 100644
--- a/pkgs/development/java-modules/maven/surefire-api.nix
+++ b/pkgs/development/java-modules/maven/surefire-api.nix
@@ -3,12 +3,12 @@
 rec {
   mavenSurefireApi_2_12_4 = map (obj: fetchMaven {
     version = "2.12.4";
-    baseName = "maven-surefire-api";
+    baseName = "surefire-api";
     package = "/org/apache/maven/surefire";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "jar"; sha512 = "0xf4pb0bh2kr3qx1yqav528886fdvsb801mq22hnbs8cbaghgibcb0n8w6rbiyd59y1fmiacyhhcc18ahcxv71531m704w5gydrwx9k"; }
-    { type = "pom"; sha512 = "0w5ryz3kdx6c10bwhbdpic567cf1b4918anncls9gzy89lfc4lj4lnyhapv7lsfp3fzifas618m7mh4pv5gdpjbml3fgjnqcq6895g6"; }
+    { type = "jar"; sha512 = "0chjp4jpfrhd99mpvh6v4sz71wgg8r0nyv8j2mgbsxsvbf0wha0za5g5bv16l4pflfigd4rhb2h1mkz51pb71qli8w39ycb3dw4lfpn"; }
+    { type = "pom"; sha512 = "28ra2n9ln8nb5j1xh6mnxc4kfabnvyqyrgy2wwm66pxhp1fxxxqz1izfvih9jzr3cps7pbvqwql770i14cfyjzvl0zccjsscsjyy50r"; }
   ];
 }
diff --git a/pkgs/development/java-modules/maven/surefire-booter.nix b/pkgs/development/java-modules/maven/surefire-booter.nix
index b696beae4c46..8f4d79a9807e 100644
--- a/pkgs/development/java-modules/maven/surefire-booter.nix
+++ b/pkgs/development/java-modules/maven/surefire-booter.nix
@@ -3,12 +3,12 @@
 rec {
   mavenSurefireBooter_2_12_4 = map (obj: fetchMaven {
     version = "2.12.4";
-    baseName = "maven-surefire-booter";
+    baseName = "surefire-booter";
     package = "/org/apache/maven/surefire";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "jar"; sha512 = "0xf4pb0bh2kr3qx1yqav528886fdvsb801mq22hnbs8cbaghgibcb0n8w6rbiyd59y1fmiacyhhcc18ahcxv71531m704w5gydrwx9k"; }
-    { type = "pom"; sha512 = "0w5ryz3kdx6c10bwhbdpic567cf1b4918anncls9gzy89lfc4lj4lnyhapv7lsfp3fzifas618m7mh4pv5gdpjbml3fgjnqcq6895g6"; }
+    { type = "jar"; sha512 = "08l0r0s1jhjdgljh26m4i612kf6wqs6g8lwx9n0cccjjzlpn3sxg7dryagwp2gz2g9y5kpdmbpsxmp5imbdak3qrwa56wxrmik16jh8"; }
+    { type = "pom"; sha512 = "3rj97rbbdm0m0f1cpbvw7mc9hc5jmfkqbg1w1ggr640bd8fzrgmxrcynxf440mf0wg4xy55v27g6v5c3z20zlw1h4qi500x6wfm0l5s"; }
   ];
 }
diff --git a/pkgs/development/java-modules/maven/surefire-common.nix b/pkgs/development/java-modules/maven/surefire-common.nix
index 0d1bd53721cd..c7bd2995c3aa 100644
--- a/pkgs/development/java-modules/maven/surefire-common.nix
+++ b/pkgs/development/java-modules/maven/surefire-common.nix
@@ -8,7 +8,7 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "jar"; sha512 = "0xf4pb0bh2kr3qx1yqav528886fdvsb801mq22hnbs8cbaghgibcb0n8w6rbiyd59y1fmiacyhhcc18ahcxv71531m704w5gydrwx9k"; }
-    { type = "pom"; sha512 = "0w5ryz3kdx6c10bwhbdpic567cf1b4918anncls9gzy89lfc4lj4lnyhapv7lsfp3fzifas618m7mh4pv5gdpjbml3fgjnqcq6895g6"; }
+    { type = "jar"; sha512 = "3ny5b6mnmka3lzyqk03flmizj82c0hdbiqgcqxj7261pvcf2drrk85p5q2z6f2h15w60mhyvl80p39pzqa35ziqhqnp6walg7rdk0hb"; }
+    { type = "pom"; sha512 = "3iagspjgilwhbh5sxi64b2q8dpgrwa0s9wiw2417z2lvghy8knszha62n3j9qvbn7pxy819f2981s41aan6wcwx5scr9sg8jwbvcmff"; }
   ];
 }
diff --git a/pkgs/development/java-modules/maven/toolchain.nix b/pkgs/development/java-modules/maven/toolchain.nix
index 14e6866ee329..806223615124 100644
--- a/pkgs/development/java-modules/maven/toolchain.nix
+++ b/pkgs/development/java-modules/maven/toolchain.nix
@@ -19,7 +19,7 @@ rec {
     sha512 = obj.sha512;
     type = obj.type;
   }) [
-    { type = "jar"; sha512 = "34kxv3l3676ddrsj2k02f9fmphcq16avafka950d5dclrcx7w37wgxx3gcf6zfixfx9zlbb7annsa05y8f0rx97g13rkqdfdj1wknky"; }
-    { type = "pom"; sha512 = "0arkdm0bii7cm0g8qzzfih1jk9j7myn8w2ccr6j01wsj08gv7cbjr5k9jx1iwy1vzvhhsmsj6grq678zsgbvh4msn1s44i744x4fhvy"; }
+    { type = "jar"; sha512 = "37jjcjfx51bszg13wjhkv2spyw1b2n8glgyaaflzfqxmfhizr43y1fq2zhn2khp2jba6avilkqi9p0f2sd30glrg7lpc0srzqns3yn8"; }
+    { type = "pom"; sha512 = "1r6w6za6smam46fpdfda2612ayz4a8gm87lgwa4f5jp5k92mzaj22rcsxlnibzly19vrgvycci63w9rgmzkwi2zvxxwxmf8sc5542c7"; }
   ];
 }
diff --git a/pkgs/development/java-modules/mavenPlugins.nix b/pkgs/development/java-modules/mavenPlugins.nix
index 7c564037108a..5cd022b68377 100644
--- a/pkgs/development/java-modules/mavenPlugins.nix
+++ b/pkgs/development/java-modules/mavenPlugins.nix
@@ -1,4 +1,4 @@
-{ pkgs, stdenv, lib, maven }:
+{ pkgs, stdenv, maven }:
 
 with pkgs;
 with pkgs.javaPackages;
diff --git a/pkgs/development/java-modules/plexus/archiver.nix b/pkgs/development/java-modules/plexus/archiver.nix
new file mode 100644
index 000000000000..e831df44732c
--- /dev/null
+++ b/pkgs/development/java-modules/plexus/archiver.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  plexusArchiver_2_1 = map (obj: fetchMaven {
+    version = "2.1";
+    baseName = "plexus-archiver";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0xwsvld0s5p4abk5ain2ya3zbz97bkk8vzjdrmfrly3mwfbxp7lyjhshxqnr58m7kan6l0vygv7lsnyfg0yyxmnj8f5nwvssgxm1izx"; }
+    { type = "pom"; sha512 = "3rrwjlrwsl9ba7dyf5vp5r1pfvfmk4vwwpyq52yrmrv22djlh4dmbh1r97aizmrf17qbs7995vmcxs83ybpc62263dgxx1qa7c85hy1"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/plexus/classworlds.nix b/pkgs/development/java-modules/plexus/classworlds.nix
new file mode 100644
index 000000000000..44b5ff3441a7
--- /dev/null
+++ b/pkgs/development/java-modules/plexus/classworlds.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  plexusClassworlds_2_2_2 = map (obj: fetchMaven {
+    version = "2.2.2";
+    baseName = "plexus-classworlds";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0w6mhv2xjafqr45zx5fwm8iyp8kabrdvyx91qxwy04k71ah6zxzqx1l8ppq7xma4r40lpp98valr1ydgfm1cay87j1kbdgaw2j48vns"; }
+    { type = "pom"; sha512 = "12kxa236gg61gs6cshgwnsj0yfpywcb606j10l9hflp951vxvlcwpcdh1nlpir0zyqj7rnk5g8609grwahq2m62fs1ymqp8db2rqi56"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/plexus/compiler-javac.nix b/pkgs/development/java-modules/plexus/compiler-javac.nix
new file mode 100644
index 000000000000..e3f4defd97ad
--- /dev/null
+++ b/pkgs/development/java-modules/plexus/compiler-javac.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  plexusCompilerJavac_2_2 = map (obj: fetchMaven {
+    version = "2.2";
+    baseName = "plexus-compiler-javac";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "12xsiaqd1q6mmmkcsxf4nr4wdjl8fa1nwz32yqwrrbj9cgakph0368cnk1apjzngsmnl6bws87nlxcz64sg0rb7i2vdzggplj0a41br"; }
+    { type = "pom"; sha512 = "1fv2ij4h9xmzv3f5mvs0ilhkw7khkw5v8n1d97a2canfn254fipz7pd9nkmkqzjvy3cqwiczyh2nzibvcii624p8ggwl4s3yjw92jx4"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/plexus/compiler-manager.nix b/pkgs/development/java-modules/plexus/compiler-manager.nix
new file mode 100644
index 000000000000..0675fff5004e
--- /dev/null
+++ b/pkgs/development/java-modules/plexus/compiler-manager.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  plexusCompilerManager_2_2 = map (obj: fetchMaven {
+    version = "2.2";
+    baseName = "plexus-compiler-manager";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1r1sdj784x4zcnkaz840vsz36jn1p2j98c21nia56kcdl1njydjn714bsmdy816l6sdinkz4s196mm3hshmxhq8mkmf16wgxx8jnq94"; }
+    { type = "pom"; sha512 = "3cpfnbgil6g0bgq0cjbq2ysfjdpl05fh72d9l9cnwbilcsaxcmzn1hgmmkvam2ih222nl82dy7n5020is3y05kiv0i4n4lcs5m0ia48"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/plexus/container-default.nix b/pkgs/development/java-modules/plexus/container-default.nix
index a720c06a186c..4b9949f3eb3c 100644
--- a/pkgs/development/java-modules/plexus/container-default.nix
+++ b/pkgs/development/java-modules/plexus/container-default.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  plexusContainerDefault_1_0_alpha9 = map (obj: fetchMaven {
+    version = "1.0-alpha-9";
+    baseName = "plexus-container-default";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2niq80yyq5kaq4qbmqsbibz9i1b6xqrfwy6iabddx9lwacsrq3a1qwh1ih877vk6dcgq8gbi0ahx19x95vwvbpp7449ja4wml5xmag2"; }
+    { type = "pom"; sha512 = "144xr23kq2ljhzzvac6w2s120s96jfaccaishb9lqmrx0a8gkq949ccyf3qmv6srryflsqc0sksl7rr3294iwjgwj04xidhd8c5jycd"; }
+  ];
+
   plexusContainerDefault_1_0_alpha9_stable1 = map (obj: fetchMaven {
     version = "1.0-alpha-9-stable-1";
     baseName = "plexus-container-default";
@@ -11,4 +22,15 @@ rec {
     { type = "jar"; sha512 = "1dpzdijx7xb3kgv2ybias3shzvpsq82w6x1ig5gdkg0i47m6a1ld53bi3gjczdpn88xparp80jkqlacjb65764v05ps6zg0v3vr1dkw"; }
     { type = "pom"; sha512 = "1gnm9ivwrkr3aqpnmdl34hkx53189wxj9acp2fms8inhznrxqcyyk355gpgzwvs9qpgdis1q88mj1fy3x1v3ffa3b6wi758p95q79jc"; }
   ];
+
+  plexusContainerDefault_1_5_5 = map (obj: fetchMaven {
+    version = "1.5.5";
+    baseName = "plexus-container-default";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3f6qyisir3k7aa627fqh0q98zvfc4hz8xq1rzjgqjhgv34m2x8kgwfxvlcik5v7724gjj41vjvs909xw7l0v80ryhvl95r35ndqzvzy"; }
+    { type = "pom"; sha512 = "2axphhx8xiii80gbf9gmm6qrm6m4ws4fbdcmghzfsn1yvmmjsj7x1c15g5mkq0lhh0skscibqifsxh44qix21qfkxr532681jh5qq5h"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/plexus/digest.nix b/pkgs/development/java-modules/plexus/digest.nix
new file mode 100644
index 000000000000..8bd73891779f
--- /dev/null
+++ b/pkgs/development/java-modules/plexus/digest.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  plexusDigest_1_0 = map (obj: fetchMaven {
+    version = "1.0";
+    baseName = "plexus-digest";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0r343fhzhfdnavsjbl7jnxgdw64wsfzyk4q7l3m7s5wx3b8mxnizyg1r4fwb59bd8w8hw6x8l0nxrk16a9hnkhrdmnc01hyb3ra7irk"; }
+    { type = "pom"; sha512 = "1z7nqj2qa82g8dgd4jzmankz3hkh4r8y1q0abd37kwsx54ij681d46z916w009mq232jharynypg3682ds47jxxnqsmpm9k22i7fgib"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/plexus/interpolation.nix b/pkgs/development/java-modules/plexus/interpolation.nix
index 17660f0804c5..2d08495532d1 100644
--- a/pkgs/development/java-modules/plexus/interpolation.nix
+++ b/pkgs/development/java-modules/plexus/interpolation.nix
@@ -1,6 +1,28 @@
 { fetchMaven }:
 
 rec {
+  plexusInterpolation_1_11 = map (obj: fetchMaven {
+    version = "1.11";
+    baseName = "plexus-interpolation";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "064lk1i6x9jj0yaiw2j1738652mxwi6qavagi364dj0pyg65pp875hs6qv1kc4gpzk60ksr99mg49mhb216p0lim83xshrxqj9i5j2w"; }
+    { type = "pom"; sha512 = "2laqd4iv9mj4r7kdm0zyc07pyi04p1svb27fdzm2w4y3kmi4z5h2cg39rpn6slf8wmfnk3zlcj3w662sm1fy47qzdjwkkjil0fgv3m3"; }
+  ];
+
+  plexusInterpolation_1_12 = map (obj: fetchMaven {
+    version = "1.12";
+    baseName = "plexus-interpolation";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "239qj01vsvn7rxm67z15lgc4nc6lqas3fkxx8an5dddzsdjh7vm99ya576abwzngcm4ckz5d0dk7qx9rgsz6b9rwjq3zvqahmaw2h7a"; }
+    { type = "pom"; sha512 = "1jpkc2q1i325vscq9ryww1ip7vgpbzcwv23ks18b33gdxpkw25kfzncpcnpdg9fy5jn60fb6jhngxz9mkxnzyl0p3sfkkarwcmcx881"; }
+  ];
+
   plexusInterpolation_1_13 = map (obj: fetchMaven {
     version = "1.13";
     baseName = "plexus-interpolation";
@@ -11,4 +33,15 @@ rec {
     { type = "jar"; sha512 = "0sm1kaxsvn8007br7nr9ncjppmfkp8nzr6ipwwx86idai9bqcsm4kh2scxf893s4jf2ii7f5106dd5w4h7bw67csalhqqzi1zpndbk4"; }
     { type = "pom"; sha512 = "3hlv9l82yxjbnaf2vqq6p3w38jq2id15a2yjg6wj810fl2286zz5ci3g3x7x0z0xdrxrrfvswns92v25197vpg0dki113lwdbw4bsvr"; }
   ];
+
+  plexusInterpolation_1_15 = map (obj: fetchMaven {
+    version = "1.15";
+    baseName = "plexus-interpolation";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0a3bvnmawbnqyva73pcz6mwwd9qsy2hrhjn708qmcplv7n21h06qyvzm5advlrrbqf7k55140vdh6nzvzlwvbw3ksbchdh4r85a9i4j"; }
+    { type = "pom"; sha512 = "20z12w94g7pdmps9k3in3wmhirbz1qpgymfjpr5zx66kdiarj32b2akz28f5gr037zr3k3v366v3k3l694dx42rqhhwmalralybsj6a"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/plexus/io.nix b/pkgs/development/java-modules/plexus/io.nix
new file mode 100644
index 000000000000..1b17ae3c2cac
--- /dev/null
+++ b/pkgs/development/java-modules/plexus/io.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  plexusIo_2_0_2 = map (obj: fetchMaven {
+    version = "2.0.2";
+    baseName = "plexus-io";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1z1il2fj5vr20g4aadwc0wkx117gffh8ql38i6ww5ldv9lppq81wmbsngj9vw434viy1rjifmwrx0ia3k66plqi3w63x86igq7ka0hk"; }
+    { type = "pom"; sha512 = "3wlqpr3b8gw9kphnqkwbxmd5pmis9wkp31biqaa6qmib31k3az6qk81fd8bwr6ifpki11fabawzbmg0dnabxig8svg6c49ydgjm3p8p"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/plexus/utils.nix b/pkgs/development/java-modules/plexus/utils.nix
index 17dc1acdf1f8..137ac01c02d8 100644
--- a/pkgs/development/java-modules/plexus/utils.nix
+++ b/pkgs/development/java-modules/plexus/utils.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  plexusUtils_1_0_4 = map (obj: fetchMaven {
+    version = "1.0.4";
+    baseName = "plexus-utils";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3bk54p57k27fy0gdqbagscp0qqhpb116ds8jw9vcqncl3x31xs1fp0d59pjylc62h9r9g4jp068v0b116n00ljrfjfsnvnknnnlahmd"; }
+    { type = "pom"; sha512 = "35mm9fkfw1wljabr4lz6l5mq3mxgl7k87whlcz5qlddsbxy0j69j4xgf1fvjlyp06nqq2wz574v54aqpxgp8s6jwjyz9wyvqvsyka8d"; }
+  ];
+
   plexusUtils_1_1 = map (obj: fetchMaven {
     version = "1.1";
     baseName = "plexus-utils";
@@ -12,6 +23,28 @@ rec {
     { type = "pom"; sha512 = "0vbzdfsdcc4cq7hdqzb1vdfxp23vnavq7z4qmmlb4d4fiqj5wqdgagrs43gl7yzca2azpyj3kyxgaipimi7gck07jcsz0pzljkplk4w"; }
   ];
 
+  plexusUtils_1_4_1 = map (obj: fetchMaven {
+    version = "1.4.1";
+    baseName = "plexus-utils";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "33b5mg4y3a57dfh41v2wimmvc9fqqh8dhihyd1hqg0lif40nnfc7yhypj1lr2ik95vd1vn6jghv0fi4pkzkbr7vb463gl6kz4yra2fk"; }
+    { type = "pom"; sha512 = "00h4r4l6isrks402minrpmm0shx8mxhkc31dbfcm86r220vl0bbgxw9mfqqc2ldjh7wkwcd0xp236kxwphxcrajiayxgvp7xgqnvfvb"; }
+  ];
+
+  plexusUtils_1_4_5 = map (obj: fetchMaven {
+    version = "1.4.5";
+    baseName = "plexus-utils";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1f20xhp8jnkc70fy6b0fbhb16pvbwp83k4dwwar4r5570yn24j09iqlk8bhz6ra8pnkh0jz0idg61wrlz9mghzbmgdn6f2dj25dzr8s"; }
+    { type = "pom"; sha512 = "0liqhpc9pn81vn04qz4j3101jc33hygb415jnwpf0dhph3jay88l49gd9s1bwq6x4npn2v6863vidb8hdh5f8wd20k6m1lqhdpv882j"; }
+  ];
+
   plexusUtils_1_5_1 = map (obj: fetchMaven {
     version = "1.5.1";
     baseName = "plexus-utils";
@@ -23,6 +56,17 @@ rec {
     { type = "pom"; sha512 = "161cdrgjrw2cab4lf189hwa4s1lh42fsahjcjkir696sx0m9bmmxgjbhwxl1l8kpaxn5p6jf701bx16gry393pws636vy59nvnnx1sw"; }
   ];
 
+  plexusUtils_1_5_5 = map (obj: fetchMaven {
+    version = "1.5.5";
+    baseName = "plexus-utils";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1ygv6mcv07kb0z8hrg98xg0sr0qqyf1v3snki6j3pn8wwn5bl46j8l70c7bpcv2jf623jn7g8gbkvjl9m04v23v3jlcc106cicbgx3v"; }
+    { type = "pom"; sha512 = "29knasqhkvjif27gm3ycqhc206ycgc9920mccw7biybxmiqqajyfvv74f02sqpavlk5h6l45cfb20bmldwfznvzz9bw4zhvc12s9y5h"; }
+  ];
+
   plexusUtils_1_5_8 = map (obj: fetchMaven {
     version = "1.5.8";
     baseName = "plexus-utils";
@@ -34,6 +78,17 @@ rec {
     { type = "pom"; sha512 = "06z4gkq3bh2pwyj8pvaly9fihd8gbgcqp3jxl05vkj2rcdb4jw3lw3hwn8f8ggqi17i2fdm8cbndkqgr9vdgiz45p8f1nx8kjlqikbi"; }
   ];
 
+  plexusUtils_1_5_15 = map (obj: fetchMaven {
+    version = "1.5.15";
+    baseName = "plexus-utils";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0sya2d7nml8is8dfykyg7va1556ldnxxr90xynq9w5ghw8w8zz69hjhy5al91m4if11kc64d4ysssqqs6s83lxs75c0kipr4byn90gc"; }
+    { type = "pom"; sha512 = "3ax5sy7x5l7c3qxj4vn4fyak0s6d7m2hbv2r79z5mr7hf0wp29jvg9jjlb8x6mdrg9q0i363j32b4mrvbxcdq7i128sqgc80c5jczdk"; }
+  ];
+
   plexusUtils_2_0_5 = map (obj: fetchMaven {
     version = "2.0.5";
     baseName = "plexus-utils";
@@ -66,4 +121,26 @@ rec {
     { type = "jar"; sha512 = "16m1khf9fafb9f79rbz93qgc35d8605v1qbs4ywnj4sk00d00d6n1649cc9rv593r8ghwd0rkz345z7wb00fagdr9af5h8h5w5blsa1"; }
     { type = "pom"; sha512 = "123fsmm1jvy571yl1s3wp7yd5k52nfjqxzqpzx2940rsigm35rw2mx1g4bvr3wx0gv5bqlfmqj5cwdhhxdq5vzrax8z5vbmdg5vb77r"; }
   ];
+
+  plexusUtils_3_0_5 = map (obj: fetchMaven {
+    version = "3.0.5";
+    baseName = "plexus-utils";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2b7l2xwn606nn227fiqg47y4cda6apr4nv618f5swjnsji0gifw4dz4a9xyb7p0iy27igkj0j2l6kp3y4fc0vhvi7wn07zfcckswiyf"; }
+    { type = "pom"; sha512 = "264k562pvd1cyh5danf56iyay1a661d15rywwq12fd3v8k7p85kl9b9ykqa5hssqkkixrv4gmhy6nkk5dhy5whbmlan99h6w6q0pjyw"; }
+  ];
+
+  plexusUtils_3_0_8 = map (obj: fetchMaven {
+    version = "3.0.8";
+    baseName = "plexus-utils";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3745x0zvidknkzsl4p049c0qj0iv19ga9x9mfskl93r97nx7ip6qnwa9a0v9y3s5sy2klhlfg5dyyjnhr822529cv1p2dhlh46brknn"; }
+    { type = "pom"; sha512 = "1p1l437rwpxv9jfygr25b455xymqcmm4smin1bf7fzcmgkc3m7k0gdd7rfvfg2622070rmwjbk4fgv0z3alf1xz03ksjp6s0gr6sqr8"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/poms.nix b/pkgs/development/java-modules/poms.nix
index 18944e27a865..2b3f28613999 100644
--- a/pkgs/development/java-modules/poms.nix
+++ b/pkgs/development/java-modules/poms.nix
@@ -37,7 +37,7 @@ rec {
     version = "5";
     baseName = "apache";
     package = "/org/apache";
-    sha512 = "3yb998i1azfxdjk2ndcc19gzx12i0bdi6jqwp5mhwp9ac5dfsplkb5np4bkpsb948y8kpvw1pyvkx8rw0a0rvkxqzxr98ng5nq80vw6";
+    sha512 = "11l6b46mwm404vahylssab5mj4a1fw3zrjhsz3mcj5x3awnqa03131j8phias2n0rppn53xcg2p2xgr9mbp7llwabwx8jm0kz2mpgh0";
     type = "pom";
   };
 
@@ -53,7 +53,7 @@ rec {
     version = "9";
     baseName = "apache";
     package = "/org/apache";
-    sha512 = "3yb998i1azfxdjk2ndcc19gzx12i0bdi6jqwp5mhwp9ac5dfsplkb5np4bkpsb948y8kpvw1pyvkx8rw0a0rvkxqzxr98ng5nq80vw6";
+    sha512 = "0wak95l7zlizrildiji9763zzs10dmhflxaqzg8r9qw2j8a20f2nmns03skvd8na2p12zzvrxa15p952gdfkvrynmvcv2vi1qz822g9";
     type = "pom";
   };
 
@@ -81,6 +81,14 @@ rec {
     type = "pom";
   };
 
+  backportUtilConcurrent_3_1 = fetchMaven {
+    version = "3.1";
+    baseName = "backport-util-concurrent";
+    package = "/backport-util-concurrent";
+    sha512 = "38i04cb0dggdjjsvl32wpxfbczl1d696nlpzissjlq9ya197rwa0g0704p7vz71xsylvpdjssb0cyx916xsigcyb95k8c84b2hmdhvr";
+    type = "pom";
+  };
+
   beanshell_2_0_b4 = fetchMaven {
     version = "2.0b4";
     baseName = "beanshell";
@@ -97,6 +105,14 @@ rec {
     type = "pom";
   };
 
+  commonsParent_22 = fetchMaven {
+    version = "22";
+    baseName = "commons-parent";
+    package = "/org/apache/commons";
+    sha512 = "1sm8g7iwyc5gi4w73yx3p1f1l81kw8d5wzqzqgdgy7k7hfvmsxlm5r9n99h9r0g5y494ad46hjzf8cwjf8am4rv0qzhrmsqkxyd24wk";
+    type = "pom";
+  };
+
   doxia_1_0_alpha7 = fetchMaven {
     version = "1.0-alpha-7";
     baseName = "doxia";
@@ -129,6 +145,14 @@ rec {
     type = "pom";
   };
 
+  googleParent_1 = fetchMaven {
+    version = "1";
+    baseName = "google";
+    package = "/com/google";
+    sha512 = "22whj7li6dvh4xjcdx1hwlh13ar8c8d9snal6ynnbsd566n9g0kif2fx75q5j4kwmqzb2yj3c3vxdfzg82650gkyvjm2x6cb35vdi30";
+    type = "pom";
+  };
+
   hamcrestParent_1_3 = fetchMaven {
     version = "1.3";
     baseName = "hamcrest-parent";
@@ -137,6 +161,14 @@ rec {
     type = "pom";
   };
 
+  jclOverSlf4j_1_5_6 = fetchMaven {
+    version = "1.5.6";
+    baseName = "jcl-over-slf4j";
+    package = "/org/slf4j";
+    sha512 = "3ync9p7ws4p8p494jifarwpqblmbkkl6r6rw4bms8fk6ija0ifxn6q5za3pxvp690p5lzw2zkgidr51rqxk8w1ms69pb1nib1r4j578";
+    type = "pom";
+  };
+
   maven_2_0_6 = fetchMaven {
     version = "2.0.6";
     baseName = "maven";
@@ -157,7 +189,7 @@ rec {
     version = "2.2.1";
     baseName = "maven";
     package = "/org/apache/maven";
-    sha512 = "2b3wfqxbg0v2lm82a7nzw8wzw708isfrnzriy90bk89dhnj59qzpgvwrjbhs26a32gnpii5ivivh1msq51k1b7j5knmyf0hi1v0blw0";
+    sha512 = "1bdf85rb7b3dvw9gjv376pk908jgvb35hs8p6fp4pzp19pj71150if09lmhw07gvy7sdd92daw7jmijmi1f9w4gxhkbqhvzkb7qx1rs";
     type = "pom";
   };
 
@@ -197,7 +229,7 @@ rec {
     version = "11";
     baseName = "maven-parent";
     package = "/org/apache/maven";
-    sha512 = "315cgnn7mvwq5kyrln3nw85x3893zdd4dg267gk9xkig1mwjpa86l6yyd6qnrwxywcrgn0wmn2l781yvwip9rys4dd9jmbma2qhzapp";
+    sha512 = "21lz2qb0sl9akirk7fcbj7ldfgnq5nqy90s3hfvmfvz2spk1ppa5yq3702m7z72l3jpbm9vrcm4dvarar314lwjp3477p558gwcpkqf";
     type = "pom";
   };
 
@@ -205,7 +237,7 @@ rec {
     version = "13";
     baseName = "maven-parent";
     package = "/org/apache/maven";
-    sha512 = "315cgnn7mvwq5kyrln3nw85x3893zdd4dg267gk9xkig1mwjpa86l6yyd6qnrwxywcrgn0wmn2l781yvwip9rys4dd9jmbma2qhzapp";
+    sha512 = "0vgjwpmnvcjfif84s5x19ixlxg4413mfma9f10v7klv88b08vwvkpwjnffgzrlqvp5524d8zyswshqkwpdqb0klgppxiipd52d546vw";
     type = "pom";
   };
 
@@ -269,7 +301,7 @@ rec {
     version = "3.1";
     baseName = "maven-plugin-tools";
     package = "/org/apache/maven/plugin-tools";
-    sha512 = "07flf37pkkc34466bnzi4rfwdlgvd3ydasm39qzy2hybxv26306zrhipglmgsjvd84z07dscij4n7qdd2jkx9hrkm900hid4xwvxzrs";
+    sha512 = "2410rvvhnpwdg67slwb05v7vnpbvq00d36mbsc77parw4v9n3sr1hqai803g8q54lzv05zzcm7knkjv5ip5wcbvzrh0dr4f5lm904wy";
     type = "pom";
   };
 
@@ -293,7 +325,7 @@ rec {
     version = "12";
     baseName = "maven-shared-components";
     package = "/org/apache/maven/shared";
-    sha512 = "3f2pifiapx09h3wv9lglm0mkd9gid268lfz27jhqb4ck2yxna31872db7cj5c9lsg0pl2l3bwgp526whq14zj2qffqxrdq8mn9m0rhy";
+    sha512 = "1x5q96gigd54qp60i20kvmwi604ga55fc70gkz1nwn5fjmy36rlxldhhdij3kcpnxpwqp4dwxq717ai8rqv3lzjif8pxd06wzmz0q09";
     type = "pom";
   };
 
@@ -337,6 +369,14 @@ rec {
     type = "pom";
   };
 
+  plexus_1_0_8 = fetchMaven {
+    version = "1.0.8";
+    baseName = "plexus";
+    package = "/org/codehaus/plexus";
+    sha512 = "1nwv49smddfvqn1fhi8aj993pkzsxa033a9g97z7sc3aia5wzwz86azzyrklgxywc26c3k3mw8vfzv758rv3v7cn0hfmyfzfkrg8vwp";
+    type = "pom";
+  };
+
   plexus_1_0_11 = fetchMaven {
     version = "1.0.11";
     baseName = "plexus";
@@ -377,6 +417,30 @@ rec {
     type = "pom";
   };
 
+  plexus_3_0_1 = fetchMaven {
+    version = "3.0.1";
+    baseName = "plexus";
+    package = "/org/codehaus/plexus";
+    sha512 = "3rjh4msw1qjpj0vmc90f89zjkzcyahzh93jrpw25qb2wn0v18jgw65g0ai7ynssdh113kxi816syqcw8vbqwvhlr2b0acrmszy0jnps";
+    type = "pom";
+  };
+
+  plexus_3_1 = fetchMaven {
+    version = "3.1";
+    baseName = "plexus";
+    package = "/org/codehaus/plexus";
+    sha512 = "1zyyzy6zvf73bnv8c76x2lmffllqqrgk1k8kpravcrd809acfslip1w7w8kr0rg3sc7554875wsq8fbhq3zdvxwjpzwgz4l5rjr3lmr";
+    type = "pom";
+  };
+
+  plexus_3_2 = fetchMaven {
+    version = "3.2";
+    baseName = "plexus";
+    package = "/org/codehaus/plexus";
+    sha512 = "07y1vwz55l9yzfhix5w5fw5xvdj854c1ri1wws6r23xzyp5bqwrrz0x5ln26w05w78vpj1rvrq1mkk192vfr80si3ccr063aschf6ld";
+    type = "pom";
+  };
+
   plexus_3_3_1 = fetchMaven {
     version = "3.3.1";
     baseName = "plexus";
@@ -385,6 +449,14 @@ rec {
     type = "pom";
   };
 
+  plexusCipher_1_4 = fetchMaven {
+    version = "1.4";
+    baseName = "plexus-cipher";
+    package = "/org/sonatype/plexus";
+    sha512 = "1m4f7n6ch8gbwgvz7h8iab0jkan8ws3qq9776qc10k0kj6i3227kskk5s8pxlq9vrxw498jmjnkiga41fy33khrgvsvls2hrj9vv1g1";
+    type = "pom";
+  };
+
   plexusCompiler_2_2 = fetchMaven {
     version = "2.2";
     baseName = "plexus-compiler";
@@ -393,6 +465,14 @@ rec {
     type = "pom";
   };
 
+  plexusCompilers_2_2 = fetchMaven {
+    version = "2.2";
+    baseName = "plexus-compilers";
+    package = "/org/codehaus/plexus";
+    sha512 = "0yvvc8mdz1vd7mpw9h568mhlfxh3qpbz4qpyr5iw7f5ifm46gxsmnfd36ah6mn9hxh6lpra3mi536y5cv1k5mrbr128a1lwyr8p14rg";
+    type = "pom";
+  };
+
   plexusComponents_1_1_4 = fetchMaven {
     version = "1.1.4";
     baseName = "plexus-components";
@@ -401,6 +481,22 @@ rec {
     type = "pom";
   };
 
+  plexusComponents_1_1_7 = fetchMaven {
+    version = "1.1.7";
+    baseName = "plexus-components";
+    package = "/org/codehaus/plexus";
+    sha512 = "2mh1qfbaf6f6nv0nj0g8skgv82jv1l2zg7iivd2jjrzrwnpkc58ajfl1wmylwpz035d9dd713h9szkwy2hdd6pardbc4ja2w4qv5s91";
+    type = "pom";
+  };
+
+  plexusComponents_1_1_14 = fetchMaven {
+    version = "1.1.14";
+    baseName = "plexus-components";
+    package = "/org/codehaus/plexus";
+    sha512 = "2gf578c23wz38cnjnp8w80b6hzmfnzrv6is1yf52qrfcijk84fnj4k8wrqg0jms9yz6l5rkkv40zm2j7kkbxgn862mnh4i4qxcb604g";
+    type = "pom";
+  };
+
   plexusComponents_1_1_15 = fetchMaven {
     version = "1.1.15";
     baseName = "plexus-components";
@@ -409,6 +505,14 @@ rec {
     type = "pom";
   };
 
+  plexusComponents_1_1_19 = fetchMaven {
+    version = "1.1.19";
+    baseName = "plexus-components";
+    package = "/org/codehaus/plexus";
+    sha512 = "01mllmbwfrimvsgmc3wfxp60nm999xa4abp0ywpxdrvbb88dwr4g7sg3mlz22xhc8pky72mif882ppgrdxj01lx3lmm84p3g5f51bii";
+    type = "pom";
+  };
+
   plexusComponents_1_3_1 = fetchMaven {
     version = "1.3.1";
     baseName = "plexus-components";
@@ -433,6 +537,38 @@ rec {
     type = "pom";
   };
 
+  plexusSecDispatcher_1_3 = fetchMaven {
+    version = "1.3";
+    baseName = "plexus-sec-dispatcher";
+    package = "/org/sonatype/plexus";
+    sha512 = "09blh68dwrh3zix33cbfbvmxbbm7ck80pwp9x4v1ilf11y6hgm065jx39viqm0zlr86kwngrlm4skrgjw5v67aj2q7d7kd5jgj5s0qc";
+    type = "pom";
+  };
+
+  slf4jApi_1_5_6 = fetchMaven {
+    version = "1.5.6";
+    baseName = "slf4j-api";
+    package = "/org/slf4j";
+    sha512 = "3ahxd5zfxpwrp97yq74xfhrh02a7hnmcdxk5rwjn4v5hcms9b98iizsgd2ssjxa1vy784jh45f6k8qby1c1bdcwk9y18mkcw79zhl2n";
+    type = "pom";
+  };
+
+  slf4jJdk14_1_5_6 = fetchMaven {
+    version = "1.5.6";
+    baseName = "slf4j-jdk14";
+    package = "/org/slf4j";
+    sha512 = "11yiy09mlm5dq2ir05n97nka3sqwn48k47x4d2vqmgjsk3vz255m8ilxvq5hjjzygyw0prcrp4zbwkphb5his00pw8f4hczd1w16nvr";
+    type = "pom";
+  };
+
+  slf4jParent_1_5_6 = fetchMaven {
+    version = "1.5.6";
+    baseName = "slf4j-parent";
+    package = "/org/slf4j";
+    sha512 = "036cizr5vh557l65jiv706iiy1q1s3lkr1xqa1hd5yspawd111d5iq8q3qdsw07c3rmxq7n9sflgcj08bhs149ni119fdr7hn9cx0nl";
+    type = "pom";
+  };
+
   sonatypeForgeParent_3 = fetchMaven {
     version = "3";
     baseName = "forge-parent";
@@ -441,6 +577,14 @@ rec {
     type = "pom";
   };
 
+  sonatypeForgeParent_4 = fetchMaven {
+    version = "4";
+    baseName = "forge-parent";
+    package = "/org/sonatype/forge";
+    sha512 = "0j13rfddklh25sdwppxvdn97y3l8vy809g2w5zpflh74v0rh0q04ylm3j2nj5hf3ypmgx3lhdp161jbv3l47gl7gh60fk3rnq17kfbq";
+    type = "pom";
+  };
+
   sonatypeForgeParent_5 = fetchMaven {
     version = "5";
     baseName = "forge-parent";
@@ -473,6 +617,14 @@ rec {
     type = "pom";
   };
 
+  sonatypeSpiceParent_12 = fetchMaven {
+    version = "12";
+    baseName = "spice-parent";
+    package = "/org/sonatype/spice";
+    sha512 = "3bx63k5frr99ma5wcjlqlym7qr6x1m031hns35rpvz039s9cxcn8r3f7slwqaa7s19i3j46kwgxirnhs4ylcddql4rsibaqjwy9lh0d";
+    type = "pom";
+  };
+
   sonatypeSpiceParent_16 = fetchMaven {
     version = "16";
     baseName = "spice-parent";
@@ -504,4 +656,12 @@ rec {
     sha512 = "3yraw37xwayyrvwa62y6li3wbzrha08j389psz16j1dawxmg78zlm2x1jmgz3nzdb60n9kk143606bgs3vrf7ri9d5pwkg9lvw7hk92";
     type = "pom";
   };
+
+  xbean_3_4 = fetchMaven {
+    version = "3.4";
+    baseName = "xbean";
+    package = "/org/apache/xbean";
+    sha512 = "2qdd1srj7ahskmxp1cb3gkxgdmy0ms4m5mi43mvfrl085fp58f67ip2y0w4r0xfwzds12727yili6hciiwix9i6hx7wasi5sa9djcp6";
+    type = "pom";
+  };
 }
diff --git a/pkgs/top-level/java-packages.nix b/pkgs/top-level/java-packages.nix
index a777d57ec2cc..fac982b5be23 100644
--- a/pkgs/top-level/java-packages.nix
+++ b/pkgs/top-level/java-packages.nix
@@ -17,30 +17,46 @@ in {
     bsh_2_0_b4;
 
   inherit (callPackage ../development/java-modules/classworlds/classworlds.nix { inherit fetchMaven; })
+    classworlds_1_1_alpha2
     classworlds_1_1;
 
   inherit (callPackage ../development/java-modules/apache/commons-cli.nix { inherit fetchMaven; })
     commonsCli_1_0;
 
   inherit (callPackage ../development/java-modules/apache/commons-lang.nix { inherit fetchMaven; })
+    commonsLang_2_1
     commonsLang_2_3;
 
+  inherit (callPackage ../development/java-modules/apache/commons-lang3.nix { inherit fetchMaven; })
+    commonsLang3_3_1;
+
+  inherit (callPackage ../development/java-modules/apache/commons-logging-api.nix { inherit fetchMaven; })
+    commonsLoggingApi_1_1;
+
   inherit (callPackage ../development/java-modules/findbugs/jsr305.nix { inherit fetchMaven; })
     findbugsJsr305_2_0_1;
 
+  inherit (callPackage ../development/java-modules/google/collections.nix { inherit fetchMaven; })
+    googleCollections_1_0;
+
   inherit (callPackage ../development/java-modules/hamcrest/core.nix { inherit fetchMaven; })
     hamcrestCore_1_3;
 
   inherit (callPackage ../development/java-modules/junit { inherit mavenbuild fetchMaven; })
     junit_3_8_1
+    junit_3_8_2
     junit_4_12;
 
+  inherit (callPackage ../development/java-modules/log4j { inherit fetchMaven; })
+    log4j_1_2_12;
+
   inherit (callPackage ../development/java-modules/maven/archiver.nix { inherit fetchMaven; })
     mavenArchiver_2_5;
 
   inherit (callPackage ../development/java-modules/maven/artifact.nix { inherit fetchMaven; })
     mavenArtifact_2_0_6
     mavenArtifact_2_0_9
+    mavenArtifact_2_2_1
     mavenArtifact_3_0_3;
 
   inherit (callPackage ../development/java-modules/maven/artifact-manager.nix { inherit fetchMaven; })
@@ -121,7 +137,8 @@ in {
 
   inherit (callPackage ../development/java-modules/maven/project.nix { inherit fetchMaven; })
     mavenProject_2_0_6
-    mavenProject_2_0_9;
+    mavenProject_2_0_9
+    mavenProject_2_2_1;
 
   inherit (callPackage ../development/java-modules/maven/reporting-api.nix { inherit fetchMaven; })
     mavenReportingApi_2_0_6
@@ -156,17 +173,34 @@ in {
     mavenToolchain_1_0
     mavenToolchain_2_0_9;
 
+  inherit (callPackage ../development/java-modules/plexus/archiver.nix { inherit fetchMaven; })
+    plexusArchiver_2_1;
+
   inherit (callPackage ../development/java-modules/plexus/build-api.nix { inherit fetchMaven; })
     plexusBuildApi_0_0_4;
 
+  inherit (callPackage ../development/java-modules/plexus/classworlds.nix { inherit fetchMaven; })
+    plexusClassworlds_2_2_2;
+
   inherit (callPackage ../development/java-modules/plexus/compiler-api.nix { inherit fetchMaven; })
     plexusCompilerApi_2_2;
 
+  inherit (callPackage ../development/java-modules/plexus/compiler-javac.nix { inherit fetchMaven; })
+    plexusCompilerJavac_2_2;
+
+  inherit (callPackage ../development/java-modules/plexus/compiler-manager.nix { inherit fetchMaven; })
+    plexusCompilerManager_2_2;
+
   inherit (callPackage ../development/java-modules/plexus/component-annotations.nix { inherit fetchMaven; })
     plexusComponentAnnotations_1_5_5;
 
   inherit (callPackage ../development/java-modules/plexus/container-default.nix { inherit fetchMaven; })
-    plexusContainerDefault_1_0_alpha9_stable1;
+    plexusContainerDefault_1_0_alpha9
+    plexusContainerDefault_1_0_alpha9_stable1
+    plexusContainerDefault_1_5_5;
+
+  inherit (callPackage ../development/java-modules/plexus/digest.nix { inherit fetchMaven; })
+    plexusDigest_1_0;
 
   inherit (callPackage ../development/java-modules/plexus/i18n.nix { inherit fetchMaven; })
     plexusI18n_1_0_beta6;
@@ -175,13 +209,29 @@ in {
     plexusInteractivityApi_1_0_alpha4;
 
   inherit (callPackage ../development/java-modules/plexus/interpolation.nix { inherit fetchMaven; })
-    plexusInterpolation_1_13;
+    plexusInterpolation_1_11
+    plexusInterpolation_1_12
+    plexusInterpolation_1_13
+    plexusInterpolation_1_15;
+
+  inherit (callPackage ../development/java-modules/plexus/io.nix { inherit fetchMaven; })
+    plexusIo_2_0_2;
 
   inherit (callPackage ../development/java-modules/plexus/utils.nix { inherit fetchMaven; })
+    plexusUtils_1_0_4
     plexusUtils_1_1
+    plexusUtils_1_4_1
+    plexusUtils_1_4_5
     plexusUtils_1_5_1
+    plexusUtils_1_5_5
     plexusUtils_1_5_8
+    plexusUtils_1_5_15
     plexusUtils_2_0_5
     plexusUtils_2_0_6
-    plexusUtils_3_0;
+    plexusUtils_3_0
+    plexusUtils_3_0_5
+    plexusUtils_3_0_8;
+
+  inherit (callPackage ../development/java-modules/apache/xbean-reflect.nix { inherit fetchMaven; })
+    xbeanReflect_3_4;
 }

From 5d54cfd7a4474c952faccd24dba10844f8348778 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Mon, 31 Oct 2016 13:25:27 -0400
Subject: [PATCH 06/10] junit_4_12 part 2

---
 .../java-modules/apache/ant-launcher.nix      |  14 +++
 pkgs/development/java-modules/apache/ant.nix  |  14 +++
 .../java-modules/apache/commons-io.nix        |  14 +++
 .../java-modules/apache/commons-lang.nix      |  11 ++
 .../java-modules/build-maven-package.nix      |   2 +-
 .../java-modules/junit/default.nix            |   8 +-
 pkgs/development/java-modules/m2install.nix   |   4 +-
 .../maven/common-artifact-filters.nix         |  11 ++
 .../java-modules/maven/plugin-annotations.nix |  11 ++
 .../java-modules/maven/project.nix            |  11 ++
 .../java-modules/maven/surefire-api.nix       |  11 ++
 .../java-modules/maven/surefire-booter.nix    |  11 ++
 .../java-modules/maven/surefire-common.nix    |  11 ++
 .../java-modules/maven/toolchain.nix          |  11 ++
 .../java-modules/mojo/animal-sniffer.nix      |  15 +++
 .../java-modules/plexus/classworlds.nix       |  11 ++
 .../development/java-modules/plexus/utils.nix |  11 ++
 pkgs/development/java-modules/poms.nix        | 104 ++++++++++++++++++
 pkgs/development/java-modules/sisu/guice.nix  |  14 +++
 .../java-modules/sisu/inject-bean.nix         |  14 +++
 .../java-modules/sisu/inject-plexus.nix       |  14 +++
 pkgs/development/java-modules/xerces/impl.nix |  14 +++
 .../java-modules/xml-apis/default.nix         |  14 +++
 pkgs/top-level/java-packages.nix              |  51 +++++++--
 24 files changed, 394 insertions(+), 12 deletions(-)
 create mode 100644 pkgs/development/java-modules/apache/ant-launcher.nix
 create mode 100644 pkgs/development/java-modules/apache/ant.nix
 create mode 100644 pkgs/development/java-modules/apache/commons-io.nix
 create mode 100644 pkgs/development/java-modules/mojo/animal-sniffer.nix
 create mode 100644 pkgs/development/java-modules/sisu/guice.nix
 create mode 100644 pkgs/development/java-modules/sisu/inject-bean.nix
 create mode 100644 pkgs/development/java-modules/sisu/inject-plexus.nix
 create mode 100644 pkgs/development/java-modules/xerces/impl.nix
 create mode 100644 pkgs/development/java-modules/xml-apis/default.nix

diff --git a/pkgs/development/java-modules/apache/ant-launcher.nix b/pkgs/development/java-modules/apache/ant-launcher.nix
new file mode 100644
index 000000000000..0e4d7b26765c
--- /dev/null
+++ b/pkgs/development/java-modules/apache/ant-launcher.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  antLauncher_1_8_2 = map (obj: fetchMaven {
+    version = "1.8.2";
+    baseName = "ant-launcher";
+    package = "/org/apache/ant";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3h1xmlamkh39lz3dgpbyxj0mai9a266qmxkcyb7kqpzkl0xxvgyi8i2l4nnn02n4qbxznhmvsba77v52ldh67qmhxk3vw1q3xqnn2xx"; }
+    { type = "pom"; sha512 = "3fvz9di9lbfgy5370gwwdp2d380gl42sn44kr97l8i7k0n9crrbjrxs2dpy9cnsnnavvk14nrrkc72n9f1gkg1dvdxqpxlwm0y9lxhy"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/apache/ant.nix b/pkgs/development/java-modules/apache/ant.nix
new file mode 100644
index 000000000000..fa83663f5ec2
--- /dev/null
+++ b/pkgs/development/java-modules/apache/ant.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  ant_1_8_2 = map (obj: fetchMaven {
+    version = "1.8.2";
+    baseName = "ant";
+    package = "/org/apache/ant";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3x9m09i4kn57avkjbz57v1chx0356lp4mz77adslcbmr59gxfs3km1f4dq3lm1nxspldwxqk654yzh5sgrcfz13r1zlg3bvlsjbb1bs"; }
+    { type = "pom"; sha512 = "2h8ajn6x40cn8cicx3h167blkv9p6478l610xrp2n1k1zlfnh1rz2kcsi74gy7psb4h98118p3zp90gvw4h8gsphz1n30f3c96qnpiq"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/apache/commons-io.nix b/pkgs/development/java-modules/apache/commons-io.nix
new file mode 100644
index 000000000000..612dcb85f8e1
--- /dev/null
+++ b/pkgs/development/java-modules/apache/commons-io.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  commonsIo_2_1 = map (obj: fetchMaven {
+    version = "2.1";
+    baseName = "commons-io";
+    package = "/commons-io";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "30bzhsnn2vhi3wfmkas58spl6sxvl9rvwkzaqf9z1lr3iz4iym6x1xgspgq1dvy7pwr7ajny1dfpj1l6vzh7adqm2b4pidjf2w00fp2"; }
+    { type = "jar"; sha512 = "14b2kcjsn12cnrl1qc7v7r48m9vmpw5h9jljhsx58ac8xrlb8g6l71j9lnhp8cf8vc3jwz4drrwn4l9p3r5sk02cparl3h2r0y4cp2c"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/apache/commons-lang.nix b/pkgs/development/java-modules/apache/commons-lang.nix
index 8987823e4705..f6dc6b407efa 100644
--- a/pkgs/development/java-modules/apache/commons-lang.nix
+++ b/pkgs/development/java-modules/apache/commons-lang.nix
@@ -22,4 +22,15 @@ rec {
     { type = "pom"; sha512 = "0i94xb3fgq0ig0aids9r1h1kblhlf762gsjxh422ra23saa4474q4iywgfk596bpcflngf2sarq8ch6lw09p0g43779d23b74bd939n"; }
     { type = "jar"; sha512 = "1f30pryvd39m2yazflzy5l1h4l473dj8ccrd9v8z8lb6iassn4xc142f2snkzxlc7ncqsi6fbfd3zfxsy8afivmxmxds6mbsrxayqwk"; }
   ];
+
+  commonsLang_2_6 = map (obj: fetchMaven {
+    version = "2.6";
+    baseName = "commons-lang";
+    package = "/commons-lang";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "2b3yp5bawbh9b0gh56g35x03swrjv2c5jpvwjwric7ywadaf4p6cw1kmabldmi0y3rja5cypz7gfdm1pwdrpr9lmi48ijjssimmgsh1"; }
+    { type = "jar"; sha512 = "11gnsj6c1rz61j19wnr0j5rbdnl63hq9axwm7wwampmdq70n3m1szbn014phl8y3nccvrq2ifcgwb48q6jwqs50rki4bij196z3snja"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/build-maven-package.nix b/pkgs/development/java-modules/build-maven-package.nix
index a056953f9ab3..203fa88aa00b 100644
--- a/pkgs/development/java-modules/build-maven-package.nix
+++ b/pkgs/development/java-modules/build-maven-package.nix
@@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
     echo "<settings><mirrors>\
         <mirror><id>tmpm2</id><url>file://$out/m2</url><mirrorOf>*</mirrorOf></mirror></mirrors>\
         <localRepository>$out/m2</localRepository></settings>" >> $out/m2/settings.xml
-    ${maven}/bin/mvn clean install -Dmaven.test.skip=true -gs $out/m2/settings.xml
+    ${maven}/bin/mvn clean package -Dmaven.test.skip=true -Danimal.sniffer.skip=true -gs $out/m2/settings.xml
     cp -v ./target/*.jar $out/target/
   '';
 }
diff --git a/pkgs/development/java-modules/junit/default.nix b/pkgs/development/java-modules/junit/default.nix
index 8304b1a8a01b..5418679b78fe 100644
--- a/pkgs/development/java-modules/junit/default.nix
+++ b/pkgs/development/java-modules/junit/default.nix
@@ -2,7 +2,9 @@
 
 with pkgs.javaPackages;
 
-rec {
+let
+  poms = import (../poms.nix) { inherit fetchMaven; };
+in rec {
   junitGen = { mavenDeps, sha512, version }: mavenbuild rec {
     inherit mavenDeps sha512 version;
 
@@ -48,7 +50,9 @@ rec {
   ];
 
   junit_4_12 = junitGen {
-    mavenDeps = [ mavenPlugins.animalSniffer_1_11 hamcrestCore_1_3 plexusUtils_1_1 ];
+    mavenDeps = (with mavenPlugins; [ animalSniffer_1_11 mavenEnforcer_1_3_1 mavenReplacer_1_5_3 mavenSurefire_2_17 ])
+                  ++ [ aetherUtil_0_9_0_M2 ant_1_8_2 antLauncher_1_8_2 bsh_2_0_b4 commonsIo_2_1 commonsLang_2_3 commonsLang_2_6 hamcrestCore_1_3 mavenArtifact_3_0_3 mavenCommonArtifactFilters_1_2 mavenCommonArtifactFilters_1_4 mavenDependencyTree_2_1 mavenDoxiaSinkApi_1_0_alpha10 mavenEnforcerApi_1_3_1 mavenEnforcerRules_1_3_1 mavenModel_3_0_3 mavenPluginApi_3_0_3 mavenPluginAnnotations_3_2 mavenProject_2_0_1 mavenSurefireApi_2_17 mavenSurefireBooter_2_17 mavenSurefireCommon_2_17 mavenToolchain_2_2_1 mojoAnimalSniffer_1_11 plexusClassworlds_2_4 plexusI18n_1_0_beta6 plexusUtils_1_1 plexusUtils_1_5_6 plexusUtils_2_0_6 sisuGuice_2_9_4 sisuInjectBean_2_1_1 sisuInjectPlexus_2_1_1 xercesImpl_2_8_0 xmlApis_1_3_03 ]
+                  ++ (with poms; [ aether_0_9_0_M2 animalSnifferParent_1_11 antParent_1_8_2 apache_1 apache_7 beanshell_2_0_b4 codehausParent_4 commonsParent_17 doxia_1_0_alpha10 enforcer_1_3_1 hamcrestParent_1_3 maven_2_0_1 maven_3_0_3 mavenParent_6 mavenParent_15 mavenPluginTools_3_2 mavenSharedComponents_11 mojoParent_32 plexus_1_0_12 plexusComponents_1_1_4 sisuInjectGuiceBean_2_1_1 sisuInject_2_1_1 sisuInjectGuicePlexus_2_1_1 sisuParent_2_1_1 sonatypeForgeParent_7 sonatypeParent_7 surefire_2_17 ]);
     sha512 = "0bbldnf37jl855s1pdx2a518ivfifv75189vsbpylnj8530vnf8z6b2dglkcbcjgr22lp1s4m1nnplz5dmka9sr7vj055p88k27kqw9";
     version = "4.12";
   };
diff --git a/pkgs/development/java-modules/m2install.nix b/pkgs/development/java-modules/m2install.nix
index 56ae8132c61c..88e8efca1a15 100644
--- a/pkgs/development/java-modules/m2install.nix
+++ b/pkgs/development/java-modules/m2install.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl }:
-{ version, baseName, package, sha512, type ? "jar" }:
+{ version, baseName, package, sha512, type ? "jar", suffix ? "" }:
 
 let
   name = "${baseName}-${version}";
   m2Path = "${package}/${baseName}/${version}";
-  m2File = "${name}.${type}";
+  m2File = "${name}${suffix}.${type}";
   src = fetchurl rec {
       inherit sha512;
       url = "mirror://maven/${m2Path}/${m2File}";
diff --git a/pkgs/development/java-modules/maven/common-artifact-filters.nix b/pkgs/development/java-modules/maven/common-artifact-filters.nix
index 2b72293ac939..3949882f98be 100644
--- a/pkgs/development/java-modules/maven/common-artifact-filters.nix
+++ b/pkgs/development/java-modules/maven/common-artifact-filters.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenCommonArtifactFilters_1_2 = map (obj: fetchMaven {
+    version = "1.2";
+    baseName = "maven-common-artifact-filters";
+    package = "/org/apache/maven/shared";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "33g4qwxxnwdzx8h5xh5gjx8ijy6cmc5iyv0jgn70hvz1zqnilr49ibzjnichyb3m77zma30zb1njgw7fbnlx177ph5h2w0radkh3m88"; }
+    { type = "jar"; sha512 = "1z55x8hrb9g4kk21jsk9n4r26ncgsxinr18nmjgxsrcbaxcjhxbhx3nin24gwvcy6zh2d6gv26dng8i90ccc1qxvpmga2ahk68jfyjk"; }
+  ];
+
   mavenCommonArtifactFilters_1_3 = map (obj: fetchMaven {
     version = "1.3";
     baseName = "maven-common-artifact-filters";
diff --git a/pkgs/development/java-modules/maven/plugin-annotations.nix b/pkgs/development/java-modules/maven/plugin-annotations.nix
index 782e3e141006..6bd8928cf0fe 100644
--- a/pkgs/development/java-modules/maven/plugin-annotations.nix
+++ b/pkgs/development/java-modules/maven/plugin-annotations.nix
@@ -11,4 +11,15 @@ rec {
     { type = "pom"; sha512 = "2q1y622vaks1y2qjbq4005jmi41hpkivsrnmkf5kr3zndz4d6ai47d90jwr70pby8xqqsj461baljcjsicl6rrbq0v9ppyryr13q828"; }
     { type = "jar"; sha512 = "1jd8b32kl9kh4dxpdg5i9qf3haqc5br0mz8bl1ri4hb9qgwkzsijvx6jr7pv9zgplanwvgca3lhpgzsgs03n8jlqnbxbmgsv1pl93zb"; }
   ];
+
+  mavenPluginAnnotations_3_2 = map (obj: fetchMaven {
+    version = "3.2";
+    baseName = "maven-plugin-annotations";
+    package = "/org/apache/maven/plugin-tools";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "0ggvy7xhlgbpb7abc7vj0bhdqzfc6x0d4ldj7bl8qyi0qhv404qlfy4iqhn5jv3qwmj2pp9w4fa9jv5vsaz6yh8hpkzgdbpcwxdrmb9"; }
+    { type = "jar"; sha512 = "2j2lrm2dlikbpncz20r4yxhyi7h5dnhkxalvkih35m7fz57csbgd53whq969hixpfhyj18svd6695a3v4bfa94hg99mw78lzq8lwb37"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/maven/project.nix b/pkgs/development/java-modules/maven/project.nix
index 880f821f76c3..25911fcdee81 100644
--- a/pkgs/development/java-modules/maven/project.nix
+++ b/pkgs/development/java-modules/maven/project.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenProject_2_0_1 = map (obj: fetchMaven {
+    version = "2.0.1";
+    baseName = "maven-project";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "09dyyxwyjlr9q65r8zh7bsf41glpqxc9b6902s2s1clrs98k672kg04vq4fn569vx6hishna3kpxk8y7q5k5zpfy3g9wqsxcxhbqznx"; }
+    { type = "pom"; sha512 = "2fl4dl48cni9hqx0i7arrylcs028vymvmsa0wncbsz37g2gsxq462lqqd1swhgjnjqn1g6386rh6wq6j9mhpbm8kf741aypz9sf33wm"; }
+  ];
+
   mavenProject_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
     baseName = "maven-project";
diff --git a/pkgs/development/java-modules/maven/surefire-api.nix b/pkgs/development/java-modules/maven/surefire-api.nix
index e7a561814e4b..cd422bbb7585 100644
--- a/pkgs/development/java-modules/maven/surefire-api.nix
+++ b/pkgs/development/java-modules/maven/surefire-api.nix
@@ -11,4 +11,15 @@ rec {
     { type = "jar"; sha512 = "0chjp4jpfrhd99mpvh6v4sz71wgg8r0nyv8j2mgbsxsvbf0wha0za5g5bv16l4pflfigd4rhb2h1mkz51pb71qli8w39ycb3dw4lfpn"; }
     { type = "pom"; sha512 = "28ra2n9ln8nb5j1xh6mnxc4kfabnvyqyrgy2wwm66pxhp1fxxxqz1izfvih9jzr3cps7pbvqwql770i14cfyjzvl0zccjsscsjyy50r"; }
   ];
+
+  mavenSurefireApi_2_17 = map (obj: fetchMaven {
+    version = "2.17";
+    baseName = "surefire-api";
+    package = "/org/apache/maven/surefire";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "319kkasis86cqimkvsvmry60sj9m1f8vmhawpa8a56arqxfiqifnjiqfppydzlm3hlk8m4qgx3k5s291acbrv05297db8qbcrb2n688"; }
+    { type = "pom"; sha512 = "0p0yc6sq26jsa19iiqy8d0mw3q0i1jmqz21m8fp855i8q07iyqbd1lmzasfdbblki52fdyk986mdw26yhznkr29hgpy8qv7f0l6a5pz"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/maven/surefire-booter.nix b/pkgs/development/java-modules/maven/surefire-booter.nix
index 8f4d79a9807e..f7fb8068a26c 100644
--- a/pkgs/development/java-modules/maven/surefire-booter.nix
+++ b/pkgs/development/java-modules/maven/surefire-booter.nix
@@ -11,4 +11,15 @@ rec {
     { type = "jar"; sha512 = "08l0r0s1jhjdgljh26m4i612kf6wqs6g8lwx9n0cccjjzlpn3sxg7dryagwp2gz2g9y5kpdmbpsxmp5imbdak3qrwa56wxrmik16jh8"; }
     { type = "pom"; sha512 = "3rj97rbbdm0m0f1cpbvw7mc9hc5jmfkqbg1w1ggr640bd8fzrgmxrcynxf440mf0wg4xy55v27g6v5c3z20zlw1h4qi500x6wfm0l5s"; }
   ];
+
+  mavenSurefireBooter_2_17 = map (obj: fetchMaven {
+    version = "2.17";
+    baseName = "surefire-booter";
+    package = "/org/apache/maven/surefire";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1x8nldyxzx56an3zskbq40i3aq4sp21jlnybmrd6pjzf4c3pgrd8qsxkvz23pxyfzvskpkgmibfpshng9qk18c5dm2h4n5sljp1ayni"; }
+    { type = "pom"; sha512 = "0w2ql9a70ncdvzicv0947q8jil4ksha42xxswqk1aas1bsg7qwpg8v4pih887y4zirnl861qaw6d1v09l1s3jqq7hxid0w3jxnlcasb"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/maven/surefire-common.nix b/pkgs/development/java-modules/maven/surefire-common.nix
index c7bd2995c3aa..4e56b0c5a86e 100644
--- a/pkgs/development/java-modules/maven/surefire-common.nix
+++ b/pkgs/development/java-modules/maven/surefire-common.nix
@@ -11,4 +11,15 @@ rec {
     { type = "jar"; sha512 = "3ny5b6mnmka3lzyqk03flmizj82c0hdbiqgcqxj7261pvcf2drrk85p5q2z6f2h15w60mhyvl80p39pzqa35ziqhqnp6walg7rdk0hb"; }
     { type = "pom"; sha512 = "3iagspjgilwhbh5sxi64b2q8dpgrwa0s9wiw2417z2lvghy8knszha62n3j9qvbn7pxy819f2981s41aan6wcwx5scr9sg8jwbvcmff"; }
   ];
+
+  mavenSurefireCommon_2_17 = map (obj: fetchMaven {
+    version = "2.17";
+    baseName = "maven-surefire-common";
+    package = "/org/apache/maven/surefire";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2ikw1ddnxxfglb3k4920lfr8ziav5n2wp13452bxyd1gbhpwkq0js58wy9jbhyzqgdblqhfj3syxka0mxd4vngyg4iqw3c2phslmn6i"; }
+    { type = "pom"; sha512 = "1l2dkbzbi80bjsh4ri6gxw84iwzsm5g6mmhrj1ndrsr66d4cg7vg5nfyqxvf7xhzwj45768y5id09r70zijliavpsxrvjq5j0g05yb6"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/maven/toolchain.nix b/pkgs/development/java-modules/maven/toolchain.nix
index 806223615124..97ea74a5e529 100644
--- a/pkgs/development/java-modules/maven/toolchain.nix
+++ b/pkgs/development/java-modules/maven/toolchain.nix
@@ -22,4 +22,15 @@ rec {
     { type = "jar"; sha512 = "37jjcjfx51bszg13wjhkv2spyw1b2n8glgyaaflzfqxmfhizr43y1fq2zhn2khp2jba6avilkqi9p0f2sd30glrg7lpc0srzqns3yn8"; }
     { type = "pom"; sha512 = "1r6w6za6smam46fpdfda2612ayz4a8gm87lgwa4f5jp5k92mzaj22rcsxlnibzly19vrgvycci63w9rgmzkwi2zvxxwxmf8sc5542c7"; }
   ];
+
+  mavenToolchain_2_2_1 = map (obj: fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-toolchain";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "02ya75k4n4w62s9p5y1mq758s33s6vqcqli77hknr4wn22rr5fgaax8qscdnj90w3y6rkr6w0afiw438wr4hxwns5vp90fkzym87bp6"; }
+    { type = "pom"; sha512 = "1iv6k0pwyq2w5l4gfkmh818mrja0il48sajmgnpnn7ayi2238mbja07sqccm75wmzapb4039p7xq2jfp0vm41y3s00410gq3jgnf2pw"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/mojo/animal-sniffer.nix b/pkgs/development/java-modules/mojo/animal-sniffer.nix
new file mode 100644
index 000000000000..b6a5565f6fc5
--- /dev/null
+++ b/pkgs/development/java-modules/mojo/animal-sniffer.nix
@@ -0,0 +1,15 @@
+{ fetchMaven }:
+
+rec {
+  mojoAnimalSniffer_1_11 = map (obj: fetchMaven {
+    version = "1.11";
+    baseName = "animal-sniffer";
+    package = "/org/codehaus/mojo";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "36qx2q1zaja470zj7w3ygafb5n07vb623yicgwjqf1nak7ianin5nlmh7pp2pzpdd9arvg7d005rnsn79bqmxcb6y1ihsxsh6l7bmsv"; }
+    { type = "pom"; sha512 = "1dp427c8vyiw255193s4m0ffag6ngqxfkj1cwl7v40p5c1bh8avxaj8cg56nn8ajp39shxr5wgwgjs7xwjz46yjnblh9pl29z58lm4i"; }
+  ];
+}
+
diff --git a/pkgs/development/java-modules/plexus/classworlds.nix b/pkgs/development/java-modules/plexus/classworlds.nix
index 44b5ff3441a7..308287a29048 100644
--- a/pkgs/development/java-modules/plexus/classworlds.nix
+++ b/pkgs/development/java-modules/plexus/classworlds.nix
@@ -11,4 +11,15 @@ rec {
     { type = "jar"; sha512 = "0w6mhv2xjafqr45zx5fwm8iyp8kabrdvyx91qxwy04k71ah6zxzqx1l8ppq7xma4r40lpp98valr1ydgfm1cay87j1kbdgaw2j48vns"; }
     { type = "pom"; sha512 = "12kxa236gg61gs6cshgwnsj0yfpywcb606j10l9hflp951vxvlcwpcdh1nlpir0zyqj7rnk5g8609grwahq2m62fs1ymqp8db2rqi56"; }
   ];
+
+  plexusClassworlds_2_4 = map (obj: fetchMaven {
+    version = "2.4";
+    baseName = "plexus-classworlds";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1299qgrf60pz9a40wccb1376wibk99rf79x8dw9z2c97gyzxb3narkpna3fk9wqs7a89p18d2b7zi7vxr3wcdhw6n8saxggz44w9gpq"; }
+    { type = "pom"; sha512 = "1g2xisql030wjb8kvrfp0qcip2b4jbf4islmxa0k1fvjyrzms5babgdpx7m75g29dl8s649z8fb90wrrqc7g14y9g74lydc9i6rd2q5"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/plexus/utils.nix b/pkgs/development/java-modules/plexus/utils.nix
index 137ac01c02d8..2cfdd60ccae7 100644
--- a/pkgs/development/java-modules/plexus/utils.nix
+++ b/pkgs/development/java-modules/plexus/utils.nix
@@ -67,6 +67,17 @@ rec {
     { type = "pom"; sha512 = "29knasqhkvjif27gm3ycqhc206ycgc9920mccw7biybxmiqqajyfvv74f02sqpavlk5h6l45cfb20bmldwfznvzz9bw4zhvc12s9y5h"; }
   ];
 
+  plexusUtils_1_5_6 = map (obj: fetchMaven {
+    version = "1.5.6";
+    baseName = "plexus-utils";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "26p385szy6sphplalxc9750f29z7fnvmaz7m1fv0mx7p7qmvkk6pm5m4kl636m8jsflkfmzh4f4y5vj5vhxypfyc4pdzfsp9xyc3vwq"; }
+    { type = "pom"; sha512 = "261yv9sgjmslxjsfx7fj1ma53ld930qxic4br5m88wv96skyni09w2nh9sslgrmpxj3q89ykhq3fciscn40066v1qn0h0f6lbk3w68r"; }
+  ];
+
   plexusUtils_1_5_8 = map (obj: fetchMaven {
     version = "1.5.8";
     baseName = "plexus-utils";
diff --git a/pkgs/development/java-modules/poms.nix b/pkgs/development/java-modules/poms.nix
index 2b3f28613999..ee19aaf2103c 100644
--- a/pkgs/development/java-modules/poms.nix
+++ b/pkgs/development/java-modules/poms.nix
@@ -17,6 +17,22 @@ rec {
     type = "pom";
   };
 
+  antParent_1_8_2 = fetchMaven {
+    version = "1.8.2";
+    baseName = "ant-parent";
+    package = "/org/apache/ant";
+    sha512 = "1q560n9xbqk9qpprvm0nigd5nhm9s8m027qxjmzhay083sjrazscpaly4mzgry5lpdmr3xyhly1r1s88879y04qr5xqzqh0j45j943x";
+    type = "pom";
+  };
+
+  apache_1 = fetchMaven {
+    version = "1";
+    baseName = "apache";
+    package = "/org/apache";
+    sha512 = "0vbf7mbs61n13dmxndvzkafr0sg9p7g45ng9j1917cz8a9m4zflqf7xvpp9wfprmb4d1wd3ay2hhy9brxryqmvx41wfjlk9ahg34k0h";
+    type = "pom";
+  };
+
   apache_3 = fetchMaven {
     version = "3";
     baseName = "apache";
@@ -49,6 +65,14 @@ rec {
     type = "pom";
   };
 
+  apache_7 = fetchMaven {
+    version = "7";
+    baseName = "apache";
+    package = "/org/apache";
+    sha512 = "2yvwxxifqypmpgxyx10ggj6l52jnl64f9554kyfdph7z56n02bcalj3cr43m6br0as6yc67k5p23l2k3gvdr66c5dfw1l8rwhahk9lr";
+    type = "pom";
+  };
+
   apache_9 = fetchMaven {
     version = "9";
     baseName = "apache";
@@ -105,6 +129,14 @@ rec {
     type = "pom";
   };
 
+  commonsParent_17 = fetchMaven {
+    version = "17";
+    baseName = "commons-parent";
+    package = "/org/apache/commons";
+    sha512 = "31ijvmfj2yybfy0n4qh7ga8192wg75hs5v26vwm98hgvlppxs9irik4qlqzh4iqq0azp0xl8idz6nn6yb9vzsjxax4c3v5wyk3yvyfy";
+    type = "pom";
+  };
+
   commonsParent_22 = fetchMaven {
     version = "22";
     baseName = "commons-parent";
@@ -169,6 +201,14 @@ rec {
     type = "pom";
   };
 
+  maven_2_0_1 = fetchMaven {
+    version = "2.0.1";
+    baseName = "maven";
+    package = "/org/apache/maven";
+    sha512 = "02n3kpll7w5iqaijawmm4rzr35sbv826c9vp1fzfnrgbvpfw22yrsjv2z416pzk2qyjh3wx7pc5xxxxdchmpzcxm694vsdl67ki2rrz";
+    type = "pom";
+  };
+
   maven_2_0_6 = fetchMaven {
     version = "2.0.6";
     baseName = "maven";
@@ -305,6 +345,14 @@ rec {
     type = "pom";
   };
 
+  mavenPluginTools_3_2 = fetchMaven {
+    version = "3.2";
+    baseName = "maven-plugin-tools";
+    package = "/org/apache/maven/plugin-tools";
+    sha512 = "28qhbacsb69rcp86l3lkc3d83267qdwwpl0zm134rxi58wy4y4rd8nz2yzk6yx4x8h0drq776b2qnr4ps1da1ybsvsi2sc655scx3lf";
+    type = "pom";
+  };
+
   mavenReporting_2_0_6 = fetchMaven {
     version = "2.0.6";
     baseName = "maven-reporting";
@@ -321,6 +369,14 @@ rec {
     type = "pom";
   };
 
+  mavenSharedComponents_11 = fetchMaven {
+    version = "11";
+    baseName = "maven-shared-components";
+    package = "/org/apache/maven/shared";
+    sha512 = "3g30bgx3nhw1pwq5nq7ns17vs53cck3zrk6b4sqh56my7vhdv08v0n94l326q9f51sxvnsn11zmpnn8zri8hz2ci1g61ymgi2d0mxyd";
+    type = "pom";
+  };
+
   mavenSharedComponents_12 = fetchMaven {
     version = "12";
     baseName = "maven-shared-components";
@@ -385,6 +441,14 @@ rec {
     type = "pom";
   };
 
+  plexus_1_0_12 = fetchMaven {
+    version = "1.0.12";
+    baseName = "plexus";
+    package = "/org/codehaus/plexus";
+    sha512 = "2ckzb1z4hgmp2r61a05v3aqapkfnyfs4b7wrf60aiymrz57kliyq3nn50h7bj6ak9hlpyzxpqgqps0chzfpizr8v0abdkjmbplvw2ai";
+    type = "pom";
+  };
+
   plexus_2_0_2 = fetchMaven {
     version = "2.0.2";
     baseName = "plexus";
@@ -545,6 +609,38 @@ rec {
     type = "pom";
   };
 
+  sisuInject_2_1_1 = fetchMaven {
+    version = "2.1.1";
+    baseName = "sisu-inject";
+    package = "/org/sonatype/sisu";
+    sha512 = "0720p7ai7l1wqs2rfcgpvgd1rc3p2bdpp51a57jmqbgh9msr54iy0c6n0ipybd9lrl88iz4l8cc1s73qj5appf8r481bbwgv4wxi19v";
+    type = "pom";
+  };
+
+  sisuInjectGuiceBean_2_1_1 = fetchMaven {
+    version = "2.1.1";
+    baseName = "guice-bean";
+    package = "/org/sonatype/sisu/inject";
+    sha512 = "2arva9197d03whnavfspz8wm7fw8iqrhacp10984lxwig221m34p5bb9vmhn8bbswf7d8whzf9q5lsq9mxbmd2c90kc1m7n7qja6qq5";
+    type = "pom";
+  };
+
+  sisuInjectGuicePlexus_2_1_1 = fetchMaven {
+    version = "2.1.1";
+    baseName = "guice-plexus";
+    package = "/org/sonatype/sisu/inject";
+    sha512 = "0gspz9n6vbnlbx33xynm4sg0wxlr89i8490gcl0y0qw6mvjjqfwv1dqgncm9xp41mb21i00gxq0ml6d4wfr0sdayk9m736b826lrvq4";
+    type = "pom";
+  };
+
+  sisuParent_2_1_1 = fetchMaven {
+    version = "2.1.1";
+    baseName = "sisu-parent";
+    package = "/org/sonatype/sisu";
+    sha512 = "2z006ib6azrxf5s02ixv5plc1db0rglnv2m8k4il0s144v63ay98wjxawcc1chld64iribhhby6wnlv2fxvv8sl9mr03qb2q2isflgc";
+    type = "pom";
+  };
+
   slf4jApi_1_5_6 = fetchMaven {
     version = "1.5.6";
     baseName = "slf4j-api";
@@ -593,6 +689,14 @@ rec {
     type = "pom";
   };
 
+  sonatypeForgeParent_7 = fetchMaven {
+    version = "7";
+    baseName = "forge-parent";
+    package = "/org/sonatype/forge";
+    sha512 = "3l6c336cm6wnrw2l7lr0wg83w1304bggvw4qydh5bqbbyfpdgwqa3pbfkq4x760k3wqwarnlpf31fz2dp6abrynjl4rr1lv68j1hhyn";
+    type = "pom";
+  };
+
   sonatypeForgeParent_10 = fetchMaven {
     version = "10";
     baseName = "forge-parent";
diff --git a/pkgs/development/java-modules/sisu/guice.nix b/pkgs/development/java-modules/sisu/guice.nix
new file mode 100644
index 000000000000..9fb70fad4466
--- /dev/null
+++ b/pkgs/development/java-modules/sisu/guice.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  sisuGuice_2_9_4 = map (obj: fetchMaven {
+    version = "2.9.4";
+    baseName = "sisu-guice";
+    package = "/org/sonatype/sisu";
+    suffix = "-no_aop";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1529vg4r0gy3ss68lprkdf13r79r0lng4iyx68gj94cf806li9kayi9p2byl6axbx174cvam9w3l90qcdsdz14vrvm163b2r8sq927m"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/sisu/inject-bean.nix b/pkgs/development/java-modules/sisu/inject-bean.nix
new file mode 100644
index 000000000000..fba7130cfbdc
--- /dev/null
+++ b/pkgs/development/java-modules/sisu/inject-bean.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  sisuInjectBean_2_1_1 = map (obj: fetchMaven {
+    version = "2.1.1";
+    baseName = "sisu-inject-bean";
+    package = "/org/sonatype/sisu";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0cqplf149dlqyqwaqk3bjlki97fbnav57vv5d9kkd2lvdradp7k89m5niwg5qgsfdlj91zidgrrkls5vyr4dcdy3lhxs1wyr4y8r0qb"; }
+    { type = "pom"; sha512 = "39dwwfh1p56crmx187wbm2kskxbcr0dfysdvqiwjfx91yhh64l9672axi28hdaw1qd5dh6whzxfqqlfjac94r37wv6fq5pkx6acp2dn"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/sisu/inject-plexus.nix b/pkgs/development/java-modules/sisu/inject-plexus.nix
new file mode 100644
index 000000000000..73335ec951e5
--- /dev/null
+++ b/pkgs/development/java-modules/sisu/inject-plexus.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  sisuInjectPlexus_2_1_1 = map (obj: fetchMaven {
+    version = "2.1.1";
+    baseName = "sisu-inject-plexus";
+    package = "/org/sonatype/sisu";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0qklkc024xc58ayl6503ig1yhpsvhxk5fc9vfb7xny9v8w2ds3f9yvd275n8iyy6iza0kj8xlk0clq1i50k96j11lf401r2vcfnk69g"; }
+    { type = "pom"; sha512 = "1fcpyrjz82v0lncyndrw61bb1p9kxzlikiw6qk2v71zgfz2cggw694g26nxsppab2d1ps689sijb9i934vf5bpkdvkc52ipbc43jwr4"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/xerces/impl.nix b/pkgs/development/java-modules/xerces/impl.nix
new file mode 100644
index 000000000000..7b04e21f50ee
--- /dev/null
+++ b/pkgs/development/java-modules/xerces/impl.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  xercesImpl_2_8_0 = map (obj: fetchMaven {
+    version = "2.8.0";
+    baseName = "xercesImpl";
+    package = "/xerces";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "09nwhb52g4ak92l8d0aymasbgjxmk4s7vp7i55l38x21zq1plxxkdp2sdk110qyg5mw06y433v28fm867jybpca8zrx51w4g7wg0w2y"; }
+    { type = "pom"; sha512 = "3lv2zqm25mmirazrpp53dicd3ficy32mdr3r7bc7xhmjky2r0051vzh5k0c01rwlb4kx0rinysxw9k20ml96ivw6ipwlrvpxjwgb74f"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/xml-apis/default.nix b/pkgs/development/java-modules/xml-apis/default.nix
new file mode 100644
index 000000000000..44044a35a57f
--- /dev/null
+++ b/pkgs/development/java-modules/xml-apis/default.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  xmlApis_1_3_03 = map (obj: fetchMaven {
+    version = "1.3.03";
+    baseName = "xml-apis";
+    package = "/xml-apis";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2sx6rm0lgzidcq1q81gnwxcj1himyny986ys6r60r3ws1p4bgxprargh5fdrmkp90djqzvy6d5b0sa0zfg1r9spynjbc8rjbr6agys9"; }
+    { type = "pom"; sha512 = "2n2pjaclvgllb8nzqkibvp1pida7sr9kmz0ngmsdrpk7sh5wrh32ri82gdj5l9mc1z88dwjyn1ydz6aazw36gdqqdwj3ba1mqs6pqmh"; }
+  ];
+}
diff --git a/pkgs/top-level/java-packages.nix b/pkgs/top-level/java-packages.nix
index fac982b5be23..2865418eb923 100644
--- a/pkgs/top-level/java-packages.nix
+++ b/pkgs/top-level/java-packages.nix
@@ -13,6 +13,12 @@ in {
   inherit (callPackage ../development/java-modules/eclipse/aether-util.nix { inherit fetchMaven; })
     aetherUtil_0_9_0_M2;
 
+  inherit (callPackage ../development/java-modules/apache/ant.nix { inherit fetchMaven; })
+    ant_1_8_2;
+
+  inherit (callPackage ../development/java-modules/apache/ant-launcher.nix { inherit fetchMaven; })
+    antLauncher_1_8_2;
+
   inherit (callPackage ../development/java-modules/beanshell/bsh.nix { inherit fetchMaven; })
     bsh_2_0_b4;
 
@@ -23,9 +29,13 @@ in {
   inherit (callPackage ../development/java-modules/apache/commons-cli.nix { inherit fetchMaven; })
     commonsCli_1_0;
 
+  inherit (callPackage ../development/java-modules/apache/commons-io.nix { inherit fetchMaven; })
+    commonsIo_2_1;
+
   inherit (callPackage ../development/java-modules/apache/commons-lang.nix { inherit fetchMaven; })
     commonsLang_2_1
-    commonsLang_2_3;
+    commonsLang_2_3
+    commonsLang_2_6;
 
   inherit (callPackage ../development/java-modules/apache/commons-lang3.nix { inherit fetchMaven; })
     commonsLang3_3_1;
@@ -65,6 +75,7 @@ in {
     mavenArtifactManager_2_2_1;
 
   inherit (callPackage ../development/java-modules/maven/common-artifact-filters.nix { inherit fetchMaven; })
+    mavenCommonArtifactFilters_1_2
     mavenCommonArtifactFilters_1_3
     mavenCommonArtifactFilters_1_4;
 
@@ -107,7 +118,8 @@ in {
     mavenMonitor_2_2_1;
 
   inherit (callPackage ../development/java-modules/maven/plugin-annotations.nix { inherit fetchMaven; })
-    mavenPluginAnnotations_3_1;
+    mavenPluginAnnotations_3_1
+    mavenPluginAnnotations_3_2;
 
   inherit (callPackage ../development/java-modules/maven/plugin-api.nix { inherit fetchMaven; })
     mavenPluginApi_2_0_6
@@ -136,6 +148,7 @@ in {
     mavenProfile_2_2_1;
 
   inherit (callPackage ../development/java-modules/maven/project.nix { inherit fetchMaven; })
+    mavenProject_2_0_1
     mavenProject_2_0_6
     mavenProject_2_0_9
     mavenProject_2_2_1;
@@ -161,17 +174,24 @@ in {
     mavenSharedUtils_0_1;
 
   inherit (callPackage ../development/java-modules/maven/surefire-api.nix { inherit fetchMaven; })
-    mavenSurefireApi_2_12_4;
+    mavenSurefireApi_2_12_4
+    mavenSurefireApi_2_17;
 
   inherit (callPackage ../development/java-modules/maven/surefire-booter.nix { inherit fetchMaven; })
-    mavenSurefireBooter_2_12_4;
+    mavenSurefireBooter_2_12_4
+    mavenSurefireBooter_2_17;
 
   inherit (callPackage ../development/java-modules/maven/surefire-common.nix { inherit fetchMaven; })
-    mavenSurefireCommon_2_12_4;
+    mavenSurefireCommon_2_12_4
+    mavenSurefireCommon_2_17;
 
   inherit (callPackage ../development/java-modules/maven/toolchain.nix { inherit fetchMaven; })
     mavenToolchain_1_0
-    mavenToolchain_2_0_9;
+    mavenToolchain_2_0_9
+    mavenToolchain_2_2_1;
+
+  inherit (callPackage ../development/java-modules/mojo/animal-sniffer.nix { inherit fetchMaven; })
+    mojoAnimalSniffer_1_11;
 
   inherit (callPackage ../development/java-modules/plexus/archiver.nix { inherit fetchMaven; })
     plexusArchiver_2_1;
@@ -180,7 +200,8 @@ in {
     plexusBuildApi_0_0_4;
 
   inherit (callPackage ../development/java-modules/plexus/classworlds.nix { inherit fetchMaven; })
-    plexusClassworlds_2_2_2;
+    plexusClassworlds_2_2_2
+    plexusClassworlds_2_4;
 
   inherit (callPackage ../development/java-modules/plexus/compiler-api.nix { inherit fetchMaven; })
     plexusCompilerApi_2_2;
@@ -224,6 +245,7 @@ in {
     plexusUtils_1_4_5
     plexusUtils_1_5_1
     plexusUtils_1_5_5
+    plexusUtils_1_5_6
     plexusUtils_1_5_8
     plexusUtils_1_5_15
     plexusUtils_2_0_5
@@ -232,6 +254,21 @@ in {
     plexusUtils_3_0_5
     plexusUtils_3_0_8;
 
+  inherit (callPackage ../development/java-modules/sisu/guice.nix { inherit fetchMaven; })
+    sisuGuice_2_9_4;
+
+  inherit (callPackage ../development/java-modules/sisu/inject-bean.nix { inherit fetchMaven; })
+    sisuInjectBean_2_1_1;
+
+  inherit (callPackage ../development/java-modules/sisu/inject-plexus.nix { inherit fetchMaven; })
+    sisuInjectPlexus_2_1_1;
+
   inherit (callPackage ../development/java-modules/apache/xbean-reflect.nix { inherit fetchMaven; })
     xbeanReflect_3_4;
+
+  inherit (callPackage ../development/java-modules/xerces/impl.nix { inherit fetchMaven; })
+    xercesImpl_2_8_0;
+
+  inherit (callPackage ../development/java-modules/xml-apis { inherit fetchMaven; })
+    xmlApis_1_3_03;
 }

From 0e10bfa24646637e7054eb8235b260e02c6953a0 Mon Sep 17 00:00:00 2001
From: NeQuissimus <steinbach.tim@googlemail.com>
Date: Mon, 14 Nov 2016 19:23:08 -0500
Subject: [PATCH 07/10] maven_hello: Add 1.1, add ability to choose skipping
 tests

---
 pkgs/development/java-modules/build-maven-package.nix |  4 ++--
 pkgs/development/java-modules/maven-hello/default.nix | 11 +++++++++--
 pkgs/top-level/java-packages.nix                      |  3 ++-
 3 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/pkgs/development/java-modules/build-maven-package.nix b/pkgs/development/java-modules/build-maven-package.nix
index 203fa88aa00b..10dabadb50c8 100644
--- a/pkgs/development/java-modules/build-maven-package.nix
+++ b/pkgs/development/java-modules/build-maven-package.nix
@@ -1,5 +1,5 @@
 { stdenv, maven, pkgs }:
-{ mavenDeps, src, name, meta, m2Path, ... }:
+{ mavenDeps, src, name, meta, m2Path, skipTests ? true, ... }:
 
 with builtins;
 with stdenv.lib;
@@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
     echo "<settings><mirrors>\
         <mirror><id>tmpm2</id><url>file://$out/m2</url><mirrorOf>*</mirrorOf></mirror></mirrors>\
         <localRepository>$out/m2</localRepository></settings>" >> $out/m2/settings.xml
-    ${maven}/bin/mvn clean package -Dmaven.test.skip=true -Danimal.sniffer.skip=true -gs $out/m2/settings.xml
+    ${maven}/bin/mvn clean package -Dmaven.test.skip=${if skipTests then "true" else "false"} -Danimal.sniffer.skip=true -gs $out/m2/settings.xml
     cp -v ./target/*.jar $out/target/
   '';
 }
diff --git a/pkgs/development/java-modules/maven-hello/default.nix b/pkgs/development/java-modules/maven-hello/default.nix
index feb3146ffd61..a1a6cfce6b42 100644
--- a/pkgs/development/java-modules/maven-hello/default.nix
+++ b/pkgs/development/java-modules/maven-hello/default.nix
@@ -3,8 +3,8 @@
 with pkgs.javaPackages;
 
 rec {
-  mavenHelloRec = { mavenDeps, sha512, version }: mavenbuild rec {
-    inherit mavenDeps sha512 version;
+  mavenHelloRec = { mavenDeps, sha512, version, skipTests }: mavenbuild rec {
+    inherit mavenDeps sha512 version skipTests;
 
     name = "maven-hello-${version}";
     src = pkgs.fetchFromGitHub {
@@ -30,4 +30,11 @@ rec {
     sha512 = "3kv5z1i02wfb0l5x3phbsk3qb3wky05sqn4v3y4cx56slqfp9z8j76vnh8v45ydgskwl2vs9xjx6ai8991mzb5ikvl3vdgmrj1j17p2";
     version = "1.0";
   };
+
+  mavenHello_1_1 = mavenHelloRec {
+    mavenDeps = [ junit_4_12 ];
+    sha512 = "3dhgl5z3nzqskjjcggrjyz37r20b0m5vhfzbx382qyqcy4d2jdhkl7v1ajhcg8vkz0qdzq85k09w5is81hybv8sd09h3hgb3rrigdaq";
+    version = "1.1";
+    skipTests = false;
+  };
 }
diff --git a/pkgs/top-level/java-packages.nix b/pkgs/top-level/java-packages.nix
index 2865418eb923..488f4cb59db8 100644
--- a/pkgs/top-level/java-packages.nix
+++ b/pkgs/top-level/java-packages.nix
@@ -104,7 +104,8 @@ in {
     mavenFiltering_1_1;
 
   inherit (callPackage ../development/java-modules/maven-hello { inherit mavenbuild; })
-    mavenHello_1_0;
+    mavenHello_1_0
+    mavenHello_1_1;
 
   inherit (callPackage ../development/java-modules/maven/model.nix { inherit fetchMaven; })
     mavenModel_2_0_6

From 63a46e0914fb1eb40c1903998faf10ffe3383cc5 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Tue, 15 Nov 2016 14:18:19 -0500
Subject: [PATCH 08/10] Complete hello world with test

---
 .../java-modules/apache/commons-cli.nix       | 11 +++
 .../java-modules/build-maven-package.nix      | 14 ++--
 .../development/java-modules/hamcrest/all.nix | 15 ++++
 .../java-modules/junit/default.nix            |  4 +-
 .../java-modules/maven-hello/default.nix      | 13 +--
 .../java-modules/maven/artifact-manager.nix   | 11 +++
 .../java-modules/maven/artifact.nix           | 22 +++++
 pkgs/development/java-modules/maven/core.nix  | 11 +++
 .../java-modules/maven/doxia-sink-api.nix     | 11 +++
 .../java-modules/maven/error-diagnostics.nix  | 11 +++
 pkgs/development/java-modules/maven/model.nix | 11 +++
 .../java-modules/maven/monitor.nix            | 11 +++
 .../java-modules/maven/plugin-api.nix         | 11 +++
 .../java-modules/maven/plugin-descriptor.nix  | 11 +++
 .../maven/plugin-parameter-documenter.nix     | 11 +++
 .../java-modules/maven/plugin-registry.nix    | 11 +++
 .../maven/plugin-testing-harness.nix          | 14 ++++
 .../java-modules/maven/profile.nix            | 11 +++
 .../java-modules/maven/project.nix            | 11 +++
 .../java-modules/maven/reporting-api.nix      | 22 +++++
 .../maven/repository-metadata.nix             | 11 +++
 .../java-modules/maven/settings.nix           | 11 +++
 .../java-modules/maven/surefire-junit4.nix    | 14 ++++
 .../mojo/java-boot-classpath-detector.nix     | 14 ++++
 pkgs/development/java-modules/ow2/asm-all.nix | 15 ++++
 .../java-modules/plexus/archiver.nix          | 11 +++
 .../development/java-modules/plexus/utils.nix | 22 +++++
 pkgs/development/java-modules/poms.nix        | 80 +++++++++++++++++++
 pkgs/top-level/java-packages.nix              | 41 +++++++++-
 29 files changed, 451 insertions(+), 15 deletions(-)
 create mode 100644 pkgs/development/java-modules/hamcrest/all.nix
 create mode 100644 pkgs/development/java-modules/maven/plugin-testing-harness.nix
 create mode 100644 pkgs/development/java-modules/maven/surefire-junit4.nix
 create mode 100644 pkgs/development/java-modules/mojo/java-boot-classpath-detector.nix
 create mode 100644 pkgs/development/java-modules/ow2/asm-all.nix

diff --git a/pkgs/development/java-modules/apache/commons-cli.nix b/pkgs/development/java-modules/apache/commons-cli.nix
index 74087a04e0c9..ffad5632b0a0 100644
--- a/pkgs/development/java-modules/apache/commons-cli.nix
+++ b/pkgs/development/java-modules/apache/commons-cli.nix
@@ -11,4 +11,15 @@ rec {
     { type = "pom"; sha512 = "1pm5ba95viabcgpjhsqw21iwis9ajn8hwpyc6rzs9frr5k62hs7lj8darxmmp21hf14mxrs37a8swayhagq6i6g8js4nl4r8mmwjlvp"; }
     { type = "jar"; sha512 = "0ybdbpfzadkncwcmnzkscbp2fhmcsqmpy60qppz7s8hs00hgqy64jr4qpdyz5bj0l4bc434vn0pv4gzxzi7y1lhh7b2rk4zv1mgs3ff"; }
   ];
+
+  commonsCli_1_2 = map (obj: fetchMaven {
+    version = "1.2";
+    baseName = "commons-cli";
+    package = "/commons-cli";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "3lrjnrkq0vq1mjp1z6zbi6x0x45hj20yvs74aqnpzayd0prwv22hyfyadgrj343is54s6m2p5mx2kpziqz9wcih5hmwg5f80ni8mxp7"; }
+    { type = "jar"; sha512 = "2mdzpng0cybpnw5dw1q4dmpn2i89zhg13m8xjv8pdbn5q28zsf8m3m7w0y8irbjyplwrfdrxipkxxvnz5f61bxi4s85hnm0sc84d3qb"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/build-maven-package.nix b/pkgs/development/java-modules/build-maven-package.nix
index 10dabadb50c8..d83b43ffd75a 100644
--- a/pkgs/development/java-modules/build-maven-package.nix
+++ b/pkgs/development/java-modules/build-maven-package.nix
@@ -1,5 +1,5 @@
 { stdenv, maven, pkgs }:
-{ mavenDeps, src, name, meta, m2Path, skipTests ? true, ... }:
+{ mavenDeps, src, name, meta, m2Path, skipTests ? true, quiet ? true, ... }:
 
 with builtins;
 with stdenv.lib;
@@ -13,8 +13,8 @@ in stdenv.mkDerivation rec {
 
   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'';
+  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 -rsfu ${foldl' (x: y: x + " " + y) "" (map (x: x + "/m2/*") flatDeps)} $out/m2'';
 
   phases = [ "unpackPhase" "buildPhase" ];
 
@@ -23,10 +23,12 @@ in stdenv.mkDerivation rec {
     mkdir -p $out/m2/${m2Path}
     ${optionalString (length flatDeps > 0) find}
     ${optionalString (length flatDeps > 0) copy}
+    if [ -f $out/m2/settings.xml ]; then rm $out/m2/settings.xml; fi
     echo "<settings><mirrors>\
-        <mirror><id>tmpm2</id><url>file://$out/m2</url><mirrorOf>*</mirrorOf></mirror></mirrors>\
-        <localRepository>$out/m2</localRepository></settings>" >> $out/m2/settings.xml
-    ${maven}/bin/mvn clean package -Dmaven.test.skip=${if skipTests then "true" else "false"} -Danimal.sniffer.skip=true -gs $out/m2/settings.xml
+      <mirror><id>tmpm2</id><url>file://$out/m2</url><mirrorOf>*</mirrorOf></mirror></mirrors>\
+      <localRepository>$out/m2/</localRepository></settings>" >> $out/m2/settings.xml
+    ${maven}/bin/mvn ${optionalString (quiet) "-q"} clean package -Dmaven.test.skip=${if skipTests then "true" else "false"} -Danimal.sniffer.skip=true -gs $out/m2/settings.xml
+    cp ./target/*.jar $out/m2/${m2Path}
     cp -v ./target/*.jar $out/target/
   '';
 }
diff --git a/pkgs/development/java-modules/hamcrest/all.nix b/pkgs/development/java-modules/hamcrest/all.nix
new file mode 100644
index 000000000000..2bba1ac92491
--- /dev/null
+++ b/pkgs/development/java-modules/hamcrest/all.nix
@@ -0,0 +1,15 @@
+{ fetchMaven }:
+
+rec {
+  hamcrestAll_1_3 = map (obj: fetchMaven {
+    version = "1.3";
+    baseName = "hamcrest-all";
+    package = "/org/hamcrest";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3pmh19hhwr2vcvj3wqx0m8gipilny4ap9gax1xpks4k5pwykh74w0x9iwpns7cl8r7kqd6rbq4khhc0shcmfh6gydr8ax201wc7lvb8"; }
+    { type = "pom"; sha512 = "1w0byl3qy1gq2d8r66fzpffalc7pqm82iz5k3bqcxhclb60ifadmsxi1icqdhfpa29gvr5p1j5723zqpr11dk9w3p16njxc0arqxp2h"; }
+  ];
+}
+
diff --git a/pkgs/development/java-modules/junit/default.nix b/pkgs/development/java-modules/junit/default.nix
index 5418679b78fe..84ccef3975d2 100644
--- a/pkgs/development/java-modules/junit/default.nix
+++ b/pkgs/development/java-modules/junit/default.nix
@@ -51,8 +51,8 @@ in rec {
 
   junit_4_12 = junitGen {
     mavenDeps = (with mavenPlugins; [ animalSniffer_1_11 mavenEnforcer_1_3_1 mavenReplacer_1_5_3 mavenSurefire_2_17 ])
-                  ++ [ aetherUtil_0_9_0_M2 ant_1_8_2 antLauncher_1_8_2 bsh_2_0_b4 commonsIo_2_1 commonsLang_2_3 commonsLang_2_6 hamcrestCore_1_3 mavenArtifact_3_0_3 mavenCommonArtifactFilters_1_2 mavenCommonArtifactFilters_1_4 mavenDependencyTree_2_1 mavenDoxiaSinkApi_1_0_alpha10 mavenEnforcerApi_1_3_1 mavenEnforcerRules_1_3_1 mavenModel_3_0_3 mavenPluginApi_3_0_3 mavenPluginAnnotations_3_2 mavenProject_2_0_1 mavenSurefireApi_2_17 mavenSurefireBooter_2_17 mavenSurefireCommon_2_17 mavenToolchain_2_2_1 mojoAnimalSniffer_1_11 plexusClassworlds_2_4 plexusI18n_1_0_beta6 plexusUtils_1_1 plexusUtils_1_5_6 plexusUtils_2_0_6 sisuGuice_2_9_4 sisuInjectBean_2_1_1 sisuInjectPlexus_2_1_1 xercesImpl_2_8_0 xmlApis_1_3_03 ]
-                  ++ (with poms; [ aether_0_9_0_M2 animalSnifferParent_1_11 antParent_1_8_2 apache_1 apache_7 beanshell_2_0_b4 codehausParent_4 commonsParent_17 doxia_1_0_alpha10 enforcer_1_3_1 hamcrestParent_1_3 maven_2_0_1 maven_3_0_3 mavenParent_6 mavenParent_15 mavenPluginTools_3_2 mavenSharedComponents_11 mojoParent_32 plexus_1_0_12 plexusComponents_1_1_4 sisuInjectGuiceBean_2_1_1 sisuInject_2_1_1 sisuInjectGuicePlexus_2_1_1 sisuParent_2_1_1 sonatypeForgeParent_7 sonatypeParent_7 surefire_2_17 ]);
+                  ++ [ aetherUtil_0_9_0_M2 ant_1_8_2 antLauncher_1_8_2 bsh_2_0_b4 commonsCli_1_2 commonsIo_2_1 commonsLang_2_3 commonsLang_2_6 hamcrestCore_1_3 mavenArtifact_2_0_1 mavenArtifact_2_0_8 mavenArtifact_3_0_3 mavenArtifactManager_2_0_1 mavenCommonArtifactFilters_1_2 mavenCommonArtifactFilters_1_4 mavenCore_2_0_1 mavenDependencyTree_2_1 mavenDoxiaSinkApi_1_0_alpha6 mavenDoxiaSinkApi_1_0_alpha10 mavenEnforcerApi_1_3_1 mavenEnforcerRules_1_3_1 mavenErrorDiagnostics_2_0_1 mavenModel_2_0_1 mavenModel_3_0_3 mavenMonitor_2_0_1 mavenPluginApi_2_0_1 mavenPluginApi_3_0_3 mavenPluginAnnotations_3_2 mavenPluginDescriptor_2_0_1 mavenPluginParameterDocumenter_2_0_1 mavenPluginRegistry_2_0_1 mavenPluginTestingHarness_1_1 mavenProfile_2_0_1 mavenProject_2_0_1 mavenProject_2_0_8 mavenReportingApi_2_0_1 mavenReportingApi_2_2_1 mavenRepositoryMetadata_2_0_1 mavenSettings_2_0_1 mavenSurefireApi_2_17 mavenSurefireBooter_2_17 mavenSurefireCommon_2_17 mavenToolchain_2_2_1 mojoAnimalSniffer_1_11 mojoJavaBootClasspathDetector_1_11 ow2AsmAll_4_0 plexusArchiver_1_0_alpha7 plexusClassworlds_2_4 plexusI18n_1_0_beta6 plexusUtils_1_0_5 plexusUtils_1_1 plexusUtils_1_4_9 plexusUtils_1_5_6 plexusUtils_2_0_6 sisuGuice_2_9_4 sisuInjectBean_2_1_1 sisuInjectPlexus_2_1_1 xercesImpl_2_8_0 xmlApis_1_3_03 ]
+                  ++ (with poms; [ aether_0_9_0_M2 animalSnifferParent_1_11 antParent_1_8_2 apache_1 apache_7 asmParent_4_0 beanshell_2_0_b4 codehausParent_4 commonsParent_11 commonsParent_17 doxia_1_0_alpha6 doxia_1_0_alpha10 enforcer_1_3_1 hamcrestParent_1_3 maven_2_0_1 maven_2_0_8 maven_3_0_3 mavenParent_6 mavenParent_15 mavenPluginTools_3_2 mavenReporting_2_0_1 mavenReporting_2_2_1 mavenSharedComponents_7 mavenSharedComponents_11 mojoParent_32 ow2_1_3 plexus_1_0_12 plexusComponents_1_1_4 plexusComponents_1_1_6 sisuInjectGuiceBean_2_1_1 sisuInject_2_1_1 sisuInjectGuicePlexus_2_1_1 sisuParent_2_1_1 sonatypeForgeParent_7 sonatypeParent_7 surefire_2_17 ]);
     sha512 = "0bbldnf37jl855s1pdx2a518ivfifv75189vsbpylnj8530vnf8z6b2dglkcbcjgr22lp1s4m1nnplz5dmka9sr7vj055p88k27kqw9";
     version = "4.12";
   };
diff --git a/pkgs/development/java-modules/maven-hello/default.nix b/pkgs/development/java-modules/maven-hello/default.nix
index a1a6cfce6b42..1ac023ec5344 100644
--- a/pkgs/development/java-modules/maven-hello/default.nix
+++ b/pkgs/development/java-modules/maven-hello/default.nix
@@ -2,9 +2,11 @@
 
 with pkgs.javaPackages;
 
-rec {
-  mavenHelloRec = { mavenDeps, sha512, version, skipTests }: mavenbuild rec {
-    inherit mavenDeps sha512 version skipTests;
+let
+  poms = import ../poms.nix { inherit fetchMaven; };
+in rec {
+  mavenHelloRec = { mavenDeps, sha512, version, skipTests ? true, quiet ? true }: mavenbuild rec {
+    inherit mavenDeps sha512 version skipTests quiet;
 
     name = "maven-hello-${version}";
     src = pkgs.fetchFromGitHub {
@@ -32,9 +34,10 @@ rec {
   };
 
   mavenHello_1_1 = mavenHelloRec {
-    mavenDeps = [ junit_4_12 ];
-    sha512 = "3dhgl5z3nzqskjjcggrjyz37r20b0m5vhfzbx382qyqcy4d2jdhkl7v1ajhcg8vkz0qdzq85k09w5is81hybv8sd09h3hgb3rrigdaq";
+    mavenDeps = [ junit_4_12 mavenSurefireJunit4_2_12_4 hamcrestCore_1_3 ] ++ (with poms; [ surefireProviders_2_12_4 ]);
+    sha512 = "2f13592blvfgwad61174fza99ncb5jlch4sjjindk1pcaixqw26fnjfxb4ck80cknkihvcsylhviyfvhpm1ivvpg0zkicxva37cr4ri";
     version = "1.1";
     skipTests = false;
+    quiet = false;
   };
 }
diff --git a/pkgs/development/java-modules/maven/artifact-manager.nix b/pkgs/development/java-modules/maven/artifact-manager.nix
index 031bd37eb6fa..6d7e0caadfd5 100644
--- a/pkgs/development/java-modules/maven/artifact-manager.nix
+++ b/pkgs/development/java-modules/maven/artifact-manager.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenArtifactManager_2_0_1 = map (obj: fetchMaven {
+    version = "2.0.1";
+    baseName = "maven-artifact-manager";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0xciyvsl2l6fnd5k5dbhz5iih66fgacdagcrflk6cfiiv3qng5zrhx61v9fbjr0fpxbj7rswkczv7vn46359nlkb80513jwhzs8gqwv"; }
+    { type = "pom"; sha512 = "1j20ygljm0qa10ryw72j9q4jlwnsjdrcdg08a10ar456zi8gxzszp5cd0xsp0j29q69bp3wck2ggfr028v0zxivxgvakm4fa6l33sya"; }
+  ];
+
   mavenArtifactManager_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
     baseName = "maven-artifact-manager";
diff --git a/pkgs/development/java-modules/maven/artifact.nix b/pkgs/development/java-modules/maven/artifact.nix
index 1cbb347baf4e..224570f910f8 100644
--- a/pkgs/development/java-modules/maven/artifact.nix
+++ b/pkgs/development/java-modules/maven/artifact.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenArtifact_2_0_1 = map (obj: fetchMaven {
+    version = "2.0.1";
+    baseName = "maven-artifact";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3xmim81k0p3l7fpgr8xlbj3mcz83d1rw3nwzdlrnwh3nkc5xryxl8fx499351vjlmjs009bhd68a20v59y3flxz8hxiy07cijgcbqnx"; }
+    { type = "pom"; sha512 = "30y2mirgqvdm3gdalxkzjljswh9xhygsw6v2jfrd9y61wqng2hzyn7dawkn5q4cyiknmw1b9660pvbnysvh3rbic75lhw5xqqgdjmih"; }
+  ];
+
   mavenArtifact_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
     baseName = "maven-artifact";
@@ -12,6 +23,17 @@ rec {
     { type = "pom"; sha512 = "37kvfxcpfajjn9lmvh5kay4y61ri1190hxxgiil8fqfvmvcm02jcqzfi4ry0nzc80g5fsarsd3s2ns2d8l0lnqjp28nn51dixm9a55w"; }
   ];
 
+  mavenArtifact_2_0_8 = map (obj: fetchMaven {
+    version = "2.0.8";
+    baseName = "maven-artifact";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0i2xd2fkvp5glb7yx8zhh96px4v2yq0bgxa6xxcy6if0sn8c3vps8jmd1z3ys27jzj1gvwgg4rpa17k0nk1c8szz1v7vwvyhp7s22pi"; }
+    { type = "pom"; sha512 = "37563kfswgk9yfzm46vk4nr44rncdd3y705vgg20lj4nsrqn7iwg55fx1a4f039gbaf8dzb6xwp0ypyspsx9q742wkwrsr5q41d99v7"; }
+  ];
+
   mavenArtifact_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
     baseName = "maven-artifact";
diff --git a/pkgs/development/java-modules/maven/core.nix b/pkgs/development/java-modules/maven/core.nix
index d135bd28657e..ed3313bba595 100644
--- a/pkgs/development/java-modules/maven/core.nix
+++ b/pkgs/development/java-modules/maven/core.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenCore_2_0_1 = map (obj: fetchMaven {
+    version = "2.0.1";
+    baseName = "maven-core";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "1iv0bg9z6zmlihxnynccdq0ivgk0bdi2vk863ii59qqnqp9wqcswx0bc60hyfasjm4d8m30b60www56v6y05mjjbpir4mmrjdbxw9gd"; }
+    { type = "jar"; sha512 = "04hrkgcpvxdisdgcp1mslkylm0b461mp42mylwpm6xdi9lcfdbd97k2rybvwgxd0y9r9j72ahm4fsqjb53xlz4737w96cmynpr8mrz4"; }
+  ];
+
   mavenCore_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
     baseName = "maven-core";
diff --git a/pkgs/development/java-modules/maven/doxia-sink-api.nix b/pkgs/development/java-modules/maven/doxia-sink-api.nix
index 7454f7bbc969..18ccf4b707a6 100644
--- a/pkgs/development/java-modules/maven/doxia-sink-api.nix
+++ b/pkgs/development/java-modules/maven/doxia-sink-api.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenDoxiaSinkApi_1_0_alpha6 = map (obj: fetchMaven {
+    version = "1.0-alpha-6";
+    baseName = "doxia-sink-api";
+    package = "/org/apache/maven/doxia";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "156j8ic3m2j23nrh074j567qxcsqi8ahpl97ba68l88cq08al1z7mh72hm8jz24lq04kxkrf3r1icqbpki10jgv7qma0cpz86yw27x2"; }
+    { type = "jar"; sha512 = "12yqdygds5w4dx8zxq4ss65a28pqrhavzzmgi3n7473r1k5r3kiw5h5bm71zdhccv5lgb4lb9p9lswa2pjkwriykfm3fj0l3924x6dk"; }
+  ];
+
   mavenDoxiaSinkApi_1_0_alpha7 = map (obj: fetchMaven {
     version = "1.0-alpha-7";
     baseName = "doxia-sink-api";
diff --git a/pkgs/development/java-modules/maven/error-diagnostics.nix b/pkgs/development/java-modules/maven/error-diagnostics.nix
index 8f3cd0a4485d..6f22316edc7a 100644
--- a/pkgs/development/java-modules/maven/error-diagnostics.nix
+++ b/pkgs/development/java-modules/maven/error-diagnostics.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenErrorDiagnostics_2_0_1 = map (obj: fetchMaven {
+    version = "2.0.1";
+    baseName = "maven-error-diagnostics";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2jva1b8myaxy6y56rkqh8lynj36rj1apsgasc8i9qrigrw2wjk9yhsywv2ylmbspva1aypn23di7bd5bfb7vhaxhlqrlakdx5pqv7kh"; }
+    { type = "pom"; sha512 = "250x4ajr37nlch6n502ggfmr558hvhdxfgwjr28svvbxlyhk73h2nz9r95gvkfymv32dml8j1d4cgy3zs3qy2wzb679pnyckjwpdq9z"; }
+  ];
+
   mavenErrorDiagnostics_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
     baseName = "maven-error-diagnostics";
diff --git a/pkgs/development/java-modules/maven/model.nix b/pkgs/development/java-modules/maven/model.nix
index 41b2458550d4..70bfd34e737c 100644
--- a/pkgs/development/java-modules/maven/model.nix
+++ b/pkgs/development/java-modules/maven/model.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenModel_2_0_1 = map (obj: fetchMaven {
+    version = "2.0.1";
+    baseName = "maven-model";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2y6dqd0xlkkmff5gwfnc5pk0w6zpircj7mrvfw2nwvsaxx9cw3fkn33m3bamzyz1zv5w1vlrlrnynifvm3mzfrgkl3dxa16p00yj5wp"; }
+    { type = "pom"; sha512 = "0mnjzcansaxakip9b2nq7pxl2nbf9033if8bap658q9i9fbm8b6djqs09frmdds1vns44vlirvmm94s2k7i1lswmsqjgv3p12lrvbb1"; }
+  ];
+
   mavenModel_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
     baseName = "maven-model";
diff --git a/pkgs/development/java-modules/maven/monitor.nix b/pkgs/development/java-modules/maven/monitor.nix
index 699d34bbf939..0a71d7ba5a42 100644
--- a/pkgs/development/java-modules/maven/monitor.nix
+++ b/pkgs/development/java-modules/maven/monitor.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenMonitor_2_0_1 = map (obj: fetchMaven {
+    version = "2.0.1";
+    baseName = "maven-monitor";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "1jp0kf3hyvk3x25fnxb9qi1yxs4lk1bpc9r76fvkggm7xhda4k2cr4ql37py5qh08c67bixyl4qiqsvlzv41jqnkxrxr85z2962fy8m"; }
+    { type = "pom"; sha512 = "3i0fzz4lb6lckvnv61bxcb26cw5cd3ibyirzlh0nnaig80rykf1v0bvr2ll0xpz2ss25b3j320kpwncsir2qmlfi51vh6ms3zm7p1ik"; }
+  ];
+
   mavenMonitor_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
     baseName = "maven-monitor";
diff --git a/pkgs/development/java-modules/maven/plugin-api.nix b/pkgs/development/java-modules/maven/plugin-api.nix
index b06b83a8e944..e4d8fbec39b2 100644
--- a/pkgs/development/java-modules/maven/plugin-api.nix
+++ b/pkgs/development/java-modules/maven/plugin-api.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenPluginApi_2_0_1 = map (obj: fetchMaven {
+    version = "2.0.1";
+    baseName = "maven-plugin-api";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "pom"; sha512 = "0fvx3mhmpr03cgyy3rx6ysdpvya6zs77yvjki1s9qfd3axzbnh2xl4w2d389rpx2vmqqx3a1lr8nj2yphm5r1wz3sb7v9rnba6jrfcr"; }
+    { type = "jar"; sha512 = "1fwfw7smywavmafbdma7xla07vaaihkg9md1v16ckp6xpbdxpsknb7s07dnx5jx757gd0gp5ak7mawg0a5sfrvjh955ynikhzjq13lz"; }
+  ];
+
   mavenPluginApi_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
     baseName = "maven-plugin-api";
diff --git a/pkgs/development/java-modules/maven/plugin-descriptor.nix b/pkgs/development/java-modules/maven/plugin-descriptor.nix
index 0a60032125ca..76f1bf5de1b2 100644
--- a/pkgs/development/java-modules/maven/plugin-descriptor.nix
+++ b/pkgs/development/java-modules/maven/plugin-descriptor.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenPluginDescriptor_2_0_1 = map (obj: fetchMaven {
+    version = "2.0.1";
+    baseName = "maven-plugin-descriptor";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2gwjmn4xnxh2hy9nnlr107q1fpnyy2yhkajvj2snpl1xmpn76m1vvj64zf52l9grpvpx91b0pvd8pxa8hzmh8kqdf1w3wqjg5k1p4zf"; }
+    { type = "pom"; sha512 = "0g9hl6i0kqfrifjmykrg5pfb2xh35by3dc1nfa4i1434xr1fzi4y5avdqaw3zlvhnybi611qxv1g2ydnwkq9mgnvjq8fis4ir60g82s"; }
+  ];
+
   mavenPluginDescriptor_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
     baseName = "maven-plugin-descriptor";
diff --git a/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix b/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix
index 82b16e616204..f3ef7c7fc5b0 100644
--- a/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix
+++ b/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenPluginParameterDocumenter_2_0_1 = map (obj: fetchMaven {
+    version = "2.0.1";
+    baseName = "maven-plugin-parameter-documenter";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3hx5wg0jqhhknfgb98j7d3xy452lyw5yr3ncbk0jfzx1xkxc3v101s5s192q3c2agjgj76xsk1axmipdmwfv3801rbk99hmyjhdqbkn"; }
+    { type = "pom"; sha512 = "0x56m654vdgakslrbzfnvarh699ag288drbk6vnwjp5xxa5jg9vizrm6kz1917d2qygrpqnn5b6yzwawj864qy9xdadzr9mbak33424"; }
+  ];
+
   mavenPluginParameterDocumenter_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
     baseName = "maven-plugin-parameter-documenter";
diff --git a/pkgs/development/java-modules/maven/plugin-registry.nix b/pkgs/development/java-modules/maven/plugin-registry.nix
index 547bda4fc9f4..b75806182cff 100644
--- a/pkgs/development/java-modules/maven/plugin-registry.nix
+++ b/pkgs/development/java-modules/maven/plugin-registry.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenPluginRegistry_2_0_1 = map (obj: fetchMaven {
+    version = "2.0.1";
+    baseName = "maven-plugin-registry";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "392cx42731zgiyvjdpqcpbhqvpjbd4ydlxfnracws8vimifcsln33s48yzk2q671ydcwdzs3kla2npy410vqzvc535km5ssj60fhq2f"; }
+    { type = "pom"; sha512 = "3g1rbjz64x7cihfgmc061nm7sg52p7wr34cb1b1725w7d3hp0vz33s5ybql3vccbf7brx9vvfykxiwsgqbw6g19zv77276vdpy8v5nr"; }
+  ];
+
   mavenPluginRegistry_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
     baseName = "maven-plugin-registry";
diff --git a/pkgs/development/java-modules/maven/plugin-testing-harness.nix b/pkgs/development/java-modules/maven/plugin-testing-harness.nix
new file mode 100644
index 000000000000..754bcc08031f
--- /dev/null
+++ b/pkgs/development/java-modules/maven/plugin-testing-harness.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenPluginTestingHarness_1_1 = map (obj: fetchMaven {
+    version = "1.1";
+    baseName = "maven-plugin-testing-harness";
+    package = "/org/apache/maven/shared";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "38cqg736n2nlzhssabyw47yl0rqcaha3k8sqgjs7pgvcpphapxinx9gck2n2y5m77rhjwkz0n6lyym6zi2k382jbasm2n59y5gkpnkj"; }
+    { type = "pom"; sha512 = "26gfh7i9qg79yggsp3sl21qj9s4j6hdabllvbvnnr0m6j8whadzbhfx2ds7p6ddvzvyi5214xrsl6ag3nxw6k5rjw10k4g32b0nyvv2"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/maven/profile.nix b/pkgs/development/java-modules/maven/profile.nix
index d5e79d13c2c2..b160fb4e9437 100644
--- a/pkgs/development/java-modules/maven/profile.nix
+++ b/pkgs/development/java-modules/maven/profile.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenProfile_2_0_1 = map (obj: fetchMaven {
+    version = "2.0.1";
+    baseName = "maven-profile";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "39zjz3jh5q5k4ryyg8psj741gwy01blflmw2hk9krqid9fpmbbcj5f3h34i1q03qcz7kgb1sz1kp58j2fmbk8364y2i0xyrg4zalzz5"; }
+    { type = "pom"; sha512 = "32jcvvf47if22cy3z0ld2gf7873ysz4qcx6b2zp62r8pbmj1i2a1kd62llvjv7p2x5l960ndvlr1a80x6mm9mnsjrwxd4vy0iwyshmv"; }
+  ];
+
   mavenProfile_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
     baseName = "maven-profile";
diff --git a/pkgs/development/java-modules/maven/project.nix b/pkgs/development/java-modules/maven/project.nix
index 25911fcdee81..f1ff4f05c4c5 100644
--- a/pkgs/development/java-modules/maven/project.nix
+++ b/pkgs/development/java-modules/maven/project.nix
@@ -23,6 +23,17 @@ rec {
     { type = "pom"; sha512 = "13z607rjazzrs3rjw6hlhpw6jip85lgdkvnkm1j17wsbhywa53x45ydyg1hzrcax8xr5zxn7mkrryp4wwwm4ihhsaz3nq8bh12yrh8p"; }
   ];
 
+  mavenProject_2_0_8 = map (obj: fetchMaven {
+    version = "2.0.8";
+    baseName = "maven-project";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2j3mwqh0zjm7pc7jydpdg6xp5gl3ila84zkhk1znn9663d84p4wgkv6zi1r16djc5jvy2g2z2id1zc7gr97spv5riwz3hbw1vw4ajzp"; }
+    { type = "pom"; sha512 = "1489hvb5g28afc2yjyc5qnlihg0qqiq0r1fkbl976hvr5kfj6pkx4h3sz69gv3pnsgpjkavqxafm11s7w1hgd8xsvajrnsy77hmpsqa"; }
+  ];
+
   mavenProject_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
     baseName = "maven-project";
diff --git a/pkgs/development/java-modules/maven/reporting-api.nix b/pkgs/development/java-modules/maven/reporting-api.nix
index 36818dc57e0c..afb949d79c53 100644
--- a/pkgs/development/java-modules/maven/reporting-api.nix
+++ b/pkgs/development/java-modules/maven/reporting-api.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenReportingApi_2_0_1 = map (obj: fetchMaven {
+    version = "2.0.1";
+    baseName = "maven-reporting-api";
+    package = "/org/apache/maven/reporting";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "06721y3g8zxhv2hx9c743ai3pc8d2agdgkz8wyaia6h7k2sy0rjxcfixpdxpw9hzdm0fqjqc3hdjf0j5dlkd11xzv9q87dr1s1x24w2"; }
+    { type = "pom"; sha512 = "2xjij0375hnv807sar41gk0qk8f7xaqm1fkrgvrbcl5sbwm614rrdxir14wlkkgr78qjx3b8m3r1jrdi47j1n5p4c9zmgg4vjl3n1sy"; }
+  ];
+
   mavenReportingApi_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
     baseName = "maven-reporting-api";
@@ -22,4 +33,15 @@ rec {
     { type = "jar"; sha512 = "0x7j7k3xbxps80swyp4ff1sw4rwrhlxsx80kyh0sj0i9jz50x18p1rba10gx2fqd4l29zri77nlm4qza5yrf61s68xby2zr2bygyc9r"; }
     { type = "pom"; sha512 = "054v1p9h0141pahs52pg8wb0x4jghm5222yns6mf4dbc9gpy7x9j2b0z2lv9q3slx98378s4zakx4kbk5ca9ldlm8sz9y10fpqm35s6"; }
   ];
+
+  mavenReportingApi_2_2_1 = map (obj: fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-reporting-api";
+    package = "/org/apache/maven/reporting";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "38nbplfyi1xcf6q502m8sgz9iacqy06y9fq811sz75wsqxld8zxkr85lqg46zhpjm8k3hk7dg4an466j65mbpf0n7iswcjnqn78slil"; }
+    { type = "pom"; sha512 = "0clwbb7p9fm5xlwkjyxx97v0k9alpz98smlpv26gz9j22hlzl08zajgiw52abqarbk80x28c02clipv1ifgbwrxyji4s8rb5f689nkp"; }
+  ];
 }
diff --git a/pkgs/development/java-modules/maven/repository-metadata.nix b/pkgs/development/java-modules/maven/repository-metadata.nix
index 7a076a3811ec..1ed2717ac4f3 100644
--- a/pkgs/development/java-modules/maven/repository-metadata.nix
+++ b/pkgs/development/java-modules/maven/repository-metadata.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenRepositoryMetadata_2_0_1 = map (obj: fetchMaven {
+    version = "2.0.1";
+    baseName = "maven-repository-metadata";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3aq5k4ifam2lm6mny7zyjlylcpk6is2jnas81w6z5p6qd5jfwfj1i3g89y0vsl7mamh2rp7xncx60mvqr0jm9hxgx8ibjcynkq92kaf"; }
+    { type = "pom"; sha512 = "29nynsxh8k1q91whs4glca3qxigid32dx70c87jvk1x1cfc8s78bvm6lzr14x7wvw5i5n61lrqvq5mc6mzsi8xmspaqjhm2m7azyx7y"; }
+  ];
+
   mavenRepositoryMetadata_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
     baseName = "maven-repository-metadata";
diff --git a/pkgs/development/java-modules/maven/settings.nix b/pkgs/development/java-modules/maven/settings.nix
index b4416607ee9e..a18532fa3627 100644
--- a/pkgs/development/java-modules/maven/settings.nix
+++ b/pkgs/development/java-modules/maven/settings.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  mavenSettings_2_0_1 = map (obj: fetchMaven {
+    version = "2.0.1";
+    baseName = "maven-settings";
+    package = "/org/apache/maven";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3jf3iix8zwbjrfxswn4x4q5jxmpkm5bqq0pb6yq5vjk74kipkk6cl5cfjhy8pakb1fymq7j7knsi791xp6jrhyyrzi31lgprdmlk06x"; }
+    { type = "pom"; sha512 = "2r0256akp6gkcg7mjpaf27s985x2hblqk2dqcjq4cl415j4hx1xvarvvkh9py8sk8sjp66nzabph2kyk7v01cy29ryay6b6hn1wzi62"; }
+  ];
+
   mavenSettings_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
     baseName = "maven-settings";
diff --git a/pkgs/development/java-modules/maven/surefire-junit4.nix b/pkgs/development/java-modules/maven/surefire-junit4.nix
new file mode 100644
index 000000000000..83aaebc7f6de
--- /dev/null
+++ b/pkgs/development/java-modules/maven/surefire-junit4.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mavenSurefireJunit4_2_12_4 = map (obj: fetchMaven {
+    version = "2.12.4";
+    baseName = "surefire-junit4";
+    package = "/org/apache/maven/surefire";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2m6k4dsy9d6yfcn33lrv1q4lb3hlg1q6c8ff0rhb05j7lzsiiqa55n2561a45bznhc8l85l31mrvva0h2hhca6xjyx1hw7k3ddgpzc5"; }
+    { type = "pom"; sha512 = "1na33q7j22fsdwcynd8pv8ivsq1fq51p818nyhhldaqnh7rm2478pnxyhq14wv9mrsgrfxffipaiqyvwq30y69y6ddn597arv16ihix"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/mojo/java-boot-classpath-detector.nix b/pkgs/development/java-modules/mojo/java-boot-classpath-detector.nix
new file mode 100644
index 000000000000..95eb52ae3e80
--- /dev/null
+++ b/pkgs/development/java-modules/mojo/java-boot-classpath-detector.nix
@@ -0,0 +1,14 @@
+{ fetchMaven }:
+
+rec {
+  mojoJavaBootClasspathDetector_1_11 = map (obj: fetchMaven {
+    version = "1.11";
+    baseName = "java-boot-classpath-detector";
+    package = "/org/codehaus/mojo";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "0dn0ry30n47544bbhp8j3r5fm6ip7cs1i8wg0wdfr735ak7r38wpb297q0k5kfaqrlqwi8cmnz4lngjan223lpwywjc806v27adjh57"; }
+    { type = "pom"; sha512 = "1ndzid9lik3a3bh8d2n9fqql29wypx4cw4ybvjgqhx63rs8hbb038irmcdr18jsalb8v2sj0bmjv6nmrr58wgf158r1zjv311m95yw0"; }
+  ];
+}
diff --git a/pkgs/development/java-modules/ow2/asm-all.nix b/pkgs/development/java-modules/ow2/asm-all.nix
new file mode 100644
index 000000000000..2fee6529f16e
--- /dev/null
+++ b/pkgs/development/java-modules/ow2/asm-all.nix
@@ -0,0 +1,15 @@
+{ fetchMaven }:
+
+rec {
+  ow2AsmAll_4_0 = map (obj: fetchMaven {
+    version = "4.0";
+    baseName = "asm-all";
+    package = "/org/ow2/asm";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3b38kqyzg15plsdwwr5kri06h0pag1pxnxzlyqcwpaa2ncd4pqh44zc7mzaxrsvpx8z5cdl413xs2p0qn1qhcz92w5lqykm4gnvb2az"; }
+    { type = "pom"; sha512 = "11gcdp8417immlsb8dvw70cmqykcqvzcl2xz37vsimdpwjx31px88dgmxs6l3k50z9mvs6h1cfgfbaw1i2qmzdkdlbyai8iwnl8q2mr"; }
+  ];
+}
+
diff --git a/pkgs/development/java-modules/plexus/archiver.nix b/pkgs/development/java-modules/plexus/archiver.nix
index e831df44732c..3a2b0a347e3d 100644
--- a/pkgs/development/java-modules/plexus/archiver.nix
+++ b/pkgs/development/java-modules/plexus/archiver.nix
@@ -1,6 +1,17 @@
 { fetchMaven }:
 
 rec {
+  plexusArchiver_1_0_alpha7 = map (obj: fetchMaven {
+    version = "1.0-alpha-7";
+    baseName = "plexus-archiver";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "3r1c5bknlk9010wqw1m6asqhnbmqz6xammhpci929gjjims27fr0c9qmskqr55vnbswcmvsiikfjnjwa36msgscirzsay48zrs5iwfk"; }
+    { type = "pom"; sha512 = "05gnm321rx3zi5bnkgl64nbx6j8f3pz6y0v6nb3xfw44kgv7rxaq8b1v716wpr2p0bdrmarxmzidc92hps2w5src0ramg6xv35zfw6w"; }
+  ];
+
   plexusArchiver_2_1 = map (obj: fetchMaven {
     version = "2.1";
     baseName = "plexus-archiver";
diff --git a/pkgs/development/java-modules/plexus/utils.nix b/pkgs/development/java-modules/plexus/utils.nix
index 2cfdd60ccae7..ca46c0d4d624 100644
--- a/pkgs/development/java-modules/plexus/utils.nix
+++ b/pkgs/development/java-modules/plexus/utils.nix
@@ -12,6 +12,17 @@ rec {
     { type = "pom"; sha512 = "35mm9fkfw1wljabr4lz6l5mq3mxgl7k87whlcz5qlddsbxy0j69j4xgf1fvjlyp06nqq2wz574v54aqpxgp8s6jwjyz9wyvqvsyka8d"; }
   ];
 
+  plexusUtils_1_0_5 = map (obj: fetchMaven {
+    version = "1.0.5";
+    baseName = "plexus-utils";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "2wj0xyywifivqq1rnmd3lj7c4kgprcyq3rb4v4y5rr89isdm40hnfhziz0zakyysk8wqw4l4wp3lg7vxhs3yd44rdfm0czvkjl726zj"; }
+    { type = "pom"; sha512 = "1pz98avnr6pml058mg2db79rpxckcxkgpl8z373l055kppsy1pvmkhjahkjpzfrg63pdsk2kgm2ls9ji5697whpbm7xcwi8j3ssx791"; }
+  ];
+
   plexusUtils_1_1 = map (obj: fetchMaven {
     version = "1.1";
     baseName = "plexus-utils";
@@ -45,6 +56,17 @@ rec {
     { type = "pom"; sha512 = "0liqhpc9pn81vn04qz4j3101jc33hygb415jnwpf0dhph3jay88l49gd9s1bwq6x4npn2v6863vidb8hdh5f8wd20k6m1lqhdpv882j"; }
   ];
 
+  plexusUtils_1_4_9 = map (obj: fetchMaven {
+    version = "1.4.9";
+    baseName = "plexus-utils";
+    package = "/org/codehaus/plexus";
+    sha512 = obj.sha512;
+    type = obj.type;
+  }) [
+    { type = "jar"; sha512 = "12fhq89mqj8m5y0ks8h39ig2q4nr3qlygjwygp9wg60dkfqrm6rscfrycs18pqd9y9fkhk8rqi96gq2vy8wg1v1a24h2wlzak1d22ip"; }
+    { type = "pom"; sha512 = "23fpn9f8gq0a3hi2mlwzjpbr3kyrsr4wl58zyq8i6xbdnnfx0wfwc2xsfn8yp3mq2pjjpdlza9l3qdmwsyzmrz8micvms8bladpvcmv"; }
+  ];
+
   plexusUtils_1_5_1 = map (obj: fetchMaven {
     version = "1.5.1";
     baseName = "plexus-utils";
diff --git a/pkgs/development/java-modules/poms.nix b/pkgs/development/java-modules/poms.nix
index ee19aaf2103c..7feff9548a1f 100644
--- a/pkgs/development/java-modules/poms.nix
+++ b/pkgs/development/java-modules/poms.nix
@@ -105,6 +105,14 @@ rec {
     type = "pom";
   };
 
+  asmParent_4_0 = fetchMaven {
+    version = "4.0";
+    baseName = "asm-parent";
+    package = "/org/ow2/asm";
+    sha512 = "2vysz9nn1pn1qzd40n7d2njmcpz7qi37pi73k9ajjmmbzwza6h8gc1pvadfqxlnih47gzc1wn3hqrc1sqd3b84kh8nrznwjcp10y0lf";
+    type = "pom";
+  };
+
   backportUtilConcurrent_3_1 = fetchMaven {
     version = "3.1";
     baseName = "backport-util-concurrent";
@@ -129,6 +137,14 @@ rec {
     type = "pom";
   };
 
+  commonsParent_11 = fetchMaven {
+    version = "11";
+    baseName = "commons-parent";
+    package = "/org/apache/commons";
+    sha512 = "3986i0mnawni27fqf74zfb1n9wvyn502nvslfmbwz5m3rgvhfdb7r1wj7qz8g3wznfvh3wd99h83d94300yvy6cilqy5sj9gfwxk3jv";
+    type = "pom";
+  };
+
   commonsParent_17 = fetchMaven {
     version = "17";
     baseName = "commons-parent";
@@ -145,6 +161,14 @@ rec {
     type = "pom";
   };
 
+  doxia_1_0_alpha6 = fetchMaven {
+    version = "1.0-alpha-6";
+    baseName = "doxia";
+    package = "/org/apache/maven/doxia";
+    sha512 = "0ya69g2xfzawf30r2n45n85h2bag0ihd2cbkd0896ykwndx62jyagc594f9pkvb8x9vwgq1dkhfc5lfw1sjcmsxm9dmyzvy2nmykpsy";
+    type = "pom";
+  };
+
   doxia_1_0_alpha7 = fetchMaven {
     version = "1.0-alpha-7";
     baseName = "doxia";
@@ -217,6 +241,14 @@ rec {
     type = "pom";
   };
 
+  maven_2_0_8 = fetchMaven {
+    version = "2.0.8";
+    baseName = "maven";
+    package = "/org/apache/maven";
+    sha512 = "0mzlba0vbanxvdgfvj3kq6xw211j40b6hk6w0b7lc686m2c26vgxks9iisgm10888lq140i6510813326bs9yb053hqfvnz3m72lkss";
+    type = "pom";
+  };
+
   maven_2_0_9 = fetchMaven {
     version = "2.0.9";
     baseName = "maven";
@@ -353,6 +385,14 @@ rec {
     type = "pom";
   };
 
+  mavenReporting_2_0_1 = fetchMaven {
+    version = "2.0.1";
+    baseName = "maven-reporting";
+    package = "/org/apache/maven/reporting";
+    sha512 = "3ns0j0w3g3xzvi4y2nbz7yl3w0bq6npvkpy56c2s2m8z0b0007vw97qm3z7b6iicwck69g9001qqqanhzr35x1qbzlqzrx5v271hvfa";
+    type = "pom";
+  };
+
   mavenReporting_2_0_6 = fetchMaven {
     version = "2.0.6";
     baseName = "maven-reporting";
@@ -369,6 +409,22 @@ rec {
     type = "pom";
   };
 
+  mavenReporting_2_2_1 = fetchMaven {
+    version = "2.2.1";
+    baseName = "maven-reporting";
+    package = "/org/apache/maven/reporting";
+    sha512 = "02gs0nk2hihvayh7gxn1ncbq7nq1hbpr40whby6c58adk7g6jq3cn84fi8svcv10w915f696drav1cimjpizcyjn00if1iql59dmfda";
+    type = "pom";
+  };
+
+  mavenSharedComponents_7 = fetchMaven {
+    version = "7";
+    baseName = "maven-shared-components";
+    package = "/org/apache/maven/shared";
+    sha512 = "35zwvraafv86jpyfvfmi76n9bzmahq5z90j9axb3b6d0wfvildz5qb43kw27si2ldwghiwsfh2jikd3gf9ms553pfillf4baab13dp6";
+    type = "pom";
+  };
+
   mavenSharedComponents_11 = fetchMaven {
     version = "11";
     baseName = "maven-shared-components";
@@ -417,6 +473,14 @@ rec {
     type = "pom";
   };
 
+  ow2_1_3 = fetchMaven {
+    version = "1.3";
+    baseName = "ow2";
+    package = "/org/ow2";
+    sha512 = "1jqfqqmh19lvrjk45zzzp895jbxb8giw8sn1qdvwhh1yqxr1z5vkv98n4g0ib2l359qmb9fal4d21ba57zmbl0rqxqlggv9c5l87gfs";
+    type = "pom";
+  };
+
   plexus_1_0_4 = fetchMaven {
     version = "1.0.4";
     baseName = "plexus";
@@ -545,6 +609,14 @@ rec {
     type = "pom";
   };
 
+  plexusComponents_1_1_6 = fetchMaven {
+    version = "1.1.6";
+    baseName = "plexus-components";
+    package = "/org/codehaus/plexus";
+    sha512 = "1m6f5xzp6mk1n0svznqc8l5x3klr9kk75223ms31q65llx765dxvrsmkjlzgshb0ipb9nfxwk9hs5fvf5dgh0xlzrnc1w2pnqdi8jnh";
+    type = "pom";
+  };
+
   plexusComponents_1_1_7 = fetchMaven {
     version = "1.1.7";
     baseName = "plexus-components";
@@ -761,6 +833,14 @@ rec {
     type = "pom";
   };
 
+  surefireProviders_2_12_4 = fetchMaven {
+    version = "2.12.4";
+    baseName = "surefire-providers";
+    package = "/org/apache/maven/surefire";
+    sha512 = "08di6wgiihz9svrdpkdvhlipdp83byd1s844fnjqfk3z0g5a72lpq718zy27rk41jma3hclmr4pv0g5dvbhf3v8hy92iby8w5rcxv5x";
+    type = "pom";
+  };
+
   xbean_3_4 = fetchMaven {
     version = "3.4";
     baseName = "xbean";
diff --git a/pkgs/top-level/java-packages.nix b/pkgs/top-level/java-packages.nix
index 488f4cb59db8..0df0b5a51c93 100644
--- a/pkgs/top-level/java-packages.nix
+++ b/pkgs/top-level/java-packages.nix
@@ -27,7 +27,8 @@ in {
     classworlds_1_1;
 
   inherit (callPackage ../development/java-modules/apache/commons-cli.nix { inherit fetchMaven; })
-    commonsCli_1_0;
+    commonsCli_1_0
+    commonsCli_1_2;
 
   inherit (callPackage ../development/java-modules/apache/commons-io.nix { inherit fetchMaven; })
     commonsIo_2_1;
@@ -49,6 +50,9 @@ in {
   inherit (callPackage ../development/java-modules/google/collections.nix { inherit fetchMaven; })
     googleCollections_1_0;
 
+  inherit (callPackage ../development/java-modules/hamcrest/all.nix { inherit fetchMaven; })
+    hamcrestAll_1_3;
+
   inherit (callPackage ../development/java-modules/hamcrest/core.nix { inherit fetchMaven; })
     hamcrestCore_1_3;
 
@@ -64,12 +68,15 @@ in {
     mavenArchiver_2_5;
 
   inherit (callPackage ../development/java-modules/maven/artifact.nix { inherit fetchMaven; })
+    mavenArtifact_2_0_1
     mavenArtifact_2_0_6
+    mavenArtifact_2_0_8
     mavenArtifact_2_0_9
     mavenArtifact_2_2_1
     mavenArtifact_3_0_3;
 
   inherit (callPackage ../development/java-modules/maven/artifact-manager.nix { inherit fetchMaven; })
+    mavenArtifactManager_2_0_1
     mavenArtifactManager_2_0_6
     mavenArtifactManager_2_0_9
     mavenArtifactManager_2_2_1;
@@ -80,6 +87,7 @@ in {
     mavenCommonArtifactFilters_1_4;
 
   inherit (callPackage ../development/java-modules/maven/core.nix { inherit fetchMaven; })
+    mavenCore_2_0_1
     mavenCore_2_0_6
     mavenCore_2_0_9
     mavenCore_2_2_1;
@@ -88,6 +96,7 @@ in {
     mavenDependencyTree_2_1;
 
   inherit (callPackage ../development/java-modules/maven/doxia-sink-api.nix { inherit fetchMaven; })
+    mavenDoxiaSinkApi_1_0_alpha6
     mavenDoxiaSinkApi_1_0_alpha7
     mavenDoxiaSinkApi_1_0_alpha10;
 
@@ -96,6 +105,7 @@ in {
     mavenEnforcerRules_1_3_1;
 
   inherit (callPackage ../development/java-modules/maven/error-diagnostics.nix { inherit fetchMaven; })
+    mavenErrorDiagnostics_2_0_1
     mavenErrorDiagnostics_2_0_6
     mavenErrorDiagnostics_2_0_9
     mavenErrorDiagnostics_2_2_1;
@@ -108,12 +118,14 @@ in {
     mavenHello_1_1;
 
   inherit (callPackage ../development/java-modules/maven/model.nix { inherit fetchMaven; })
+    mavenModel_2_0_1
     mavenModel_2_0_6
     mavenModel_2_0_9
     mavenModel_2_2_1
     mavenModel_3_0_3;
 
   inherit (callPackage ../development/java-modules/maven/monitor.nix { inherit fetchMaven; })
+    mavenMonitor_2_0_1
     mavenMonitor_2_0_6
     mavenMonitor_2_0_9
     mavenMonitor_2_2_1;
@@ -123,27 +135,35 @@ in {
     mavenPluginAnnotations_3_2;
 
   inherit (callPackage ../development/java-modules/maven/plugin-api.nix { inherit fetchMaven; })
+    mavenPluginApi_2_0_1
     mavenPluginApi_2_0_6
     mavenPluginApi_2_0_9
     mavenPluginApi_2_2_1
     mavenPluginApi_3_0_3;
 
   inherit (callPackage ../development/java-modules/maven/plugin-descriptor.nix { inherit fetchMaven; })
+    mavenPluginDescriptor_2_0_1
     mavenPluginDescriptor_2_0_6
     mavenPluginDescriptor_2_0_9
     mavenPluginDescriptor_2_2_1;
 
   inherit (callPackage ../development/java-modules/maven/plugin-parameter-documenter.nix { inherit fetchMaven; })
+    mavenPluginParameterDocumenter_2_0_1
     mavenPluginParameterDocumenter_2_0_6
     mavenPluginParameterDocumenter_2_0_9
     mavenPluginParameterDocumenter_2_2_1;
 
   inherit (callPackage ../development/java-modules/maven/plugin-registry.nix { inherit fetchMaven; })
+    mavenPluginRegistry_2_0_1
     mavenPluginRegistry_2_0_6
     mavenPluginRegistry_2_0_9
     mavenPluginRegistry_2_2_1;
 
+  inherit (callPackage ../development/java-modules/maven/plugin-testing-harness.nix { inherit fetchMaven; })
+    mavenPluginTestingHarness_1_1;
+
   inherit (callPackage ../development/java-modules/maven/profile.nix { inherit fetchMaven; })
+    mavenProfile_2_0_1
     mavenProfile_2_0_6
     mavenProfile_2_0_9
     mavenProfile_2_2_1;
@@ -151,19 +171,24 @@ in {
   inherit (callPackage ../development/java-modules/maven/project.nix { inherit fetchMaven; })
     mavenProject_2_0_1
     mavenProject_2_0_6
+    mavenProject_2_0_8
     mavenProject_2_0_9
     mavenProject_2_2_1;
 
   inherit (callPackage ../development/java-modules/maven/reporting-api.nix { inherit fetchMaven; })
+    mavenReportingApi_2_0_1
     mavenReportingApi_2_0_6
-    mavenReportingApi_2_0_9;
+    mavenReportingApi_2_0_9
+    mavenReportingApi_2_2_1;
 
   inherit (callPackage ../development/java-modules/maven/repository-metadata.nix { inherit fetchMaven; })
+    mavenRepositoryMetadata_2_0_1
     mavenRepositoryMetadata_2_0_6
     mavenRepositoryMetadata_2_0_9
     mavenRepositoryMetadata_2_2_1;
 
   inherit (callPackage ../development/java-modules/maven/settings.nix { inherit fetchMaven; })
+    mavenSettings_2_0_1
     mavenSettings_2_0_6
     mavenSettings_2_0_9
     mavenSettings_2_2_1;
@@ -186,6 +211,9 @@ in {
     mavenSurefireCommon_2_12_4
     mavenSurefireCommon_2_17;
 
+  inherit (callPackage ../development/java-modules/maven/surefire-junit4.nix { inherit fetchMaven; })
+    mavenSurefireJunit4_2_12_4;
+
   inherit (callPackage ../development/java-modules/maven/toolchain.nix { inherit fetchMaven; })
     mavenToolchain_1_0
     mavenToolchain_2_0_9
@@ -194,7 +222,14 @@ in {
   inherit (callPackage ../development/java-modules/mojo/animal-sniffer.nix { inherit fetchMaven; })
     mojoAnimalSniffer_1_11;
 
+  inherit (callPackage ../development/java-modules/mojo/java-boot-classpath-detector.nix { inherit fetchMaven; })
+    mojoJavaBootClasspathDetector_1_11;
+
+  inherit (callPackage ../development/java-modules/ow2/asm-all.nix { inherit fetchMaven; })
+    ow2AsmAll_4_0;
+
   inherit (callPackage ../development/java-modules/plexus/archiver.nix { inherit fetchMaven; })
+    plexusArchiver_1_0_alpha7
     plexusArchiver_2_1;
 
   inherit (callPackage ../development/java-modules/plexus/build-api.nix { inherit fetchMaven; })
@@ -241,9 +276,11 @@ in {
 
   inherit (callPackage ../development/java-modules/plexus/utils.nix { inherit fetchMaven; })
     plexusUtils_1_0_4
+    plexusUtils_1_0_5
     plexusUtils_1_1
     plexusUtils_1_4_1
     plexusUtils_1_4_5
+    plexusUtils_1_4_9
     plexusUtils_1_5_1
     plexusUtils_1_5_5
     plexusUtils_1_5_6

From 82c1ff501aec3f625ad423c795e53fbe5ea761be Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Tue, 15 Nov 2016 14:44:35 -0500
Subject: [PATCH 09/10] Create mavenLibs

---
 pkgs/development/java-modules/collections.nix | 77 +++++++++++++++++++
 .../java-modules/junit/default.nix            |  4 +-
 .../java-modules/maven-minimal.nix            | 52 ++-----------
 3 files changed, 86 insertions(+), 47 deletions(-)
 create mode 100644 pkgs/development/java-modules/collections.nix

diff --git a/pkgs/development/java-modules/collections.nix b/pkgs/development/java-modules/collections.nix
new file mode 100644
index 000000000000..39b274b5030a
--- /dev/null
+++ b/pkgs/development/java-modules/collections.nix
@@ -0,0 +1,77 @@
+{ pkgs }:
+
+with pkgs.javaPackages;
+
+rec {
+  mavenLibs_2_0_1 = [
+    mavenArtifact_2_0_1
+    mavenArtifactManager_2_0_1
+    mavenCore_2_0_1
+    mavenErrorDiagnostics_2_0_1
+    mavenModel_2_0_1
+    mavenMonitor_2_0_1
+    mavenPluginApi_2_0_1
+    mavenPluginDescriptor_2_0_1
+    mavenPluginParameterDocumenter_2_0_1
+    mavenPluginRegistry_2_0_1
+    mavenProfile_2_0_1
+    mavenProject_2_0_1
+    mavenReportingApi_2_0_1
+    mavenRepositoryMetadata_2_0_1
+    mavenSettings_2_0_1
+  ];
+
+  mavenLibs_2_0_6 = [
+    mavenArtifact_2_0_6
+    mavenArtifactManager_2_0_6
+    mavenCore_2_0_6
+    mavenErrorDiagnostics_2_0_6
+    mavenModel_2_0_6
+    mavenMonitor_2_0_6
+    mavenPluginApi_2_0_6
+    mavenPluginDescriptor_2_0_6
+    mavenPluginParameterDocumenter_2_0_6
+    mavenPluginRegistry_2_0_6
+    mavenProfile_2_0_6
+    mavenProject_2_0_6
+    mavenReportingApi_2_0_6
+    mavenRepositoryMetadata_2_0_6
+    mavenSettings_2_0_6
+  ];
+
+  mavenLibs_2_0_9 = [
+    mavenArtifact_2_0_9
+    mavenArtifactManager_2_0_9
+    mavenCore_2_0_9
+    mavenErrorDiagnostics_2_0_9
+    mavenModel_2_0_9
+    mavenMonitor_2_0_9
+    mavenPluginApi_2_0_9
+    mavenPluginDescriptor_2_0_9
+    mavenPluginParameterDocumenter_2_0_9
+    mavenPluginRegistry_2_0_9
+    mavenProfile_2_0_9
+    mavenProject_2_0_9
+    mavenReportingApi_2_0_9
+    mavenRepositoryMetadata_2_0_9
+    mavenSettings_2_0_9
+  ];
+
+  mavenLibs_2_2_1 = [
+    mavenArtifact_2_2_1
+    mavenArtifactManager_2_2_1
+    mavenCore_2_2_1
+    mavenErrorDiagnostics_2_2_1
+    mavenModel_2_2_1
+    mavenMonitor_2_2_1
+    mavenPluginApi_2_2_1
+    mavenPluginDescriptor_2_2_1
+    mavenPluginParameterDocumenter_2_2_1
+    mavenPluginRegistry_2_2_1
+    mavenProfile_2_2_1
+    mavenProject_2_2_1
+    mavenReportingApi_2_2_1
+    mavenRepositoryMetadata_2_2_1
+    mavenSettings_2_2_1
+  ];
+}
diff --git a/pkgs/development/java-modules/junit/default.nix b/pkgs/development/java-modules/junit/default.nix
index 84ccef3975d2..2f315fa3161f 100644
--- a/pkgs/development/java-modules/junit/default.nix
+++ b/pkgs/development/java-modules/junit/default.nix
@@ -4,6 +4,7 @@ with pkgs.javaPackages;
 
 let
   poms = import (../poms.nix) { inherit fetchMaven; };
+  collections = import (../collections.nix) { inherit pkgs; };
 in rec {
   junitGen = { mavenDeps, sha512, version }: mavenbuild rec {
     inherit mavenDeps sha512 version;
@@ -51,7 +52,8 @@ in rec {
 
   junit_4_12 = junitGen {
     mavenDeps = (with mavenPlugins; [ animalSniffer_1_11 mavenEnforcer_1_3_1 mavenReplacer_1_5_3 mavenSurefire_2_17 ])
-                  ++ [ aetherUtil_0_9_0_M2 ant_1_8_2 antLauncher_1_8_2 bsh_2_0_b4 commonsCli_1_2 commonsIo_2_1 commonsLang_2_3 commonsLang_2_6 hamcrestCore_1_3 mavenArtifact_2_0_1 mavenArtifact_2_0_8 mavenArtifact_3_0_3 mavenArtifactManager_2_0_1 mavenCommonArtifactFilters_1_2 mavenCommonArtifactFilters_1_4 mavenCore_2_0_1 mavenDependencyTree_2_1 mavenDoxiaSinkApi_1_0_alpha6 mavenDoxiaSinkApi_1_0_alpha10 mavenEnforcerApi_1_3_1 mavenEnforcerRules_1_3_1 mavenErrorDiagnostics_2_0_1 mavenModel_2_0_1 mavenModel_3_0_3 mavenMonitor_2_0_1 mavenPluginApi_2_0_1 mavenPluginApi_3_0_3 mavenPluginAnnotations_3_2 mavenPluginDescriptor_2_0_1 mavenPluginParameterDocumenter_2_0_1 mavenPluginRegistry_2_0_1 mavenPluginTestingHarness_1_1 mavenProfile_2_0_1 mavenProject_2_0_1 mavenProject_2_0_8 mavenReportingApi_2_0_1 mavenReportingApi_2_2_1 mavenRepositoryMetadata_2_0_1 mavenSettings_2_0_1 mavenSurefireApi_2_17 mavenSurefireBooter_2_17 mavenSurefireCommon_2_17 mavenToolchain_2_2_1 mojoAnimalSniffer_1_11 mojoJavaBootClasspathDetector_1_11 ow2AsmAll_4_0 plexusArchiver_1_0_alpha7 plexusClassworlds_2_4 plexusI18n_1_0_beta6 plexusUtils_1_0_5 plexusUtils_1_1 plexusUtils_1_4_9 plexusUtils_1_5_6 plexusUtils_2_0_6 sisuGuice_2_9_4 sisuInjectBean_2_1_1 sisuInjectPlexus_2_1_1 xercesImpl_2_8_0 xmlApis_1_3_03 ]
+                  ++ collections.mavenLibs_2_0_1
+                  ++ [ aetherUtil_0_9_0_M2 ant_1_8_2 antLauncher_1_8_2 bsh_2_0_b4 commonsCli_1_2 commonsIo_2_1 commonsLang_2_3 commonsLang_2_6 hamcrestCore_1_3 mavenArtifact_2_0_8 mavenArtifact_3_0_3 mavenCommonArtifactFilters_1_2 mavenCommonArtifactFilters_1_4 mavenDependencyTree_2_1 mavenDoxiaSinkApi_1_0_alpha6 mavenDoxiaSinkApi_1_0_alpha10 mavenEnforcerApi_1_3_1 mavenEnforcerRules_1_3_1 mavenModel_3_0_3 mavenPluginApi_3_0_3 mavenPluginAnnotations_3_2 mavenPluginTestingHarness_1_1 mavenProject_2_0_8 mavenReportingApi_2_2_1 mavenSurefireApi_2_17 mavenSurefireBooter_2_17 mavenSurefireCommon_2_17 mavenToolchain_2_2_1 mojoAnimalSniffer_1_11 mojoJavaBootClasspathDetector_1_11 ow2AsmAll_4_0 plexusArchiver_1_0_alpha7 plexusClassworlds_2_4 plexusI18n_1_0_beta6 plexusUtils_1_0_5 plexusUtils_1_1 plexusUtils_1_4_9 plexusUtils_1_5_6 plexusUtils_2_0_6 sisuGuice_2_9_4 sisuInjectBean_2_1_1 sisuInjectPlexus_2_1_1 xercesImpl_2_8_0 xmlApis_1_3_03 ]
                   ++ (with poms; [ aether_0_9_0_M2 animalSnifferParent_1_11 antParent_1_8_2 apache_1 apache_7 asmParent_4_0 beanshell_2_0_b4 codehausParent_4 commonsParent_11 commonsParent_17 doxia_1_0_alpha6 doxia_1_0_alpha10 enforcer_1_3_1 hamcrestParent_1_3 maven_2_0_1 maven_2_0_8 maven_3_0_3 mavenParent_6 mavenParent_15 mavenPluginTools_3_2 mavenReporting_2_0_1 mavenReporting_2_2_1 mavenSharedComponents_7 mavenSharedComponents_11 mojoParent_32 ow2_1_3 plexus_1_0_12 plexusComponents_1_1_4 plexusComponents_1_1_6 sisuInjectGuiceBean_2_1_1 sisuInject_2_1_1 sisuInjectGuicePlexus_2_1_1 sisuParent_2_1_1 sonatypeForgeParent_7 sonatypeParent_7 surefire_2_17 ]);
     sha512 = "0bbldnf37jl855s1pdx2a518ivfifv75189vsbpylnj8530vnf8z6b2dglkcbcjgr22lp1s4m1nnplz5dmka9sr7vj055p88k27kqw9";
     version = "4.12";
diff --git a/pkgs/development/java-modules/maven-minimal.nix b/pkgs/development/java-modules/maven-minimal.nix
index 359060c8dae2..df87f51768df 100644
--- a/pkgs/development/java-modules/maven-minimal.nix
+++ b/pkgs/development/java-modules/maven-minimal.nix
@@ -4,13 +4,17 @@ with stdenv.lib;
 with pkgs.javaPackages;
 
 let
+  collections = import ./collections.nix { inherit pkgs; };
   fetchMaven = pkgs.callPackage ./m2install.nix { };
-  poms = import ./poms.nix { inherit fetchMaven; };
   plugins = import ./mavenPlugins.nix { inherit stdenv pkgs maven; };
+  poms = import ./poms.nix { inherit fetchMaven; };
 in rec {
   # Maven needs all of these to function
   mavenMinimal = flatten
-    [
+    collections.mavenLibs_2_0_6
+    ++ collections.mavenLibs_2_0_9
+    ++ collections.mavenLibs_2_2_1
+    ++ [
       classworlds_1_1_alpha2
       classworlds_1_1
       commonsCli_1_0
@@ -23,54 +27,10 @@ in rec {
       junit_3_8_2
       log4j_1_2_12
       mavenArchiver_2_5
-      mavenArtifact_2_0_6
-      mavenArtifact_2_0_9
-      mavenArtifact_2_2_1
-      mavenArtifactManager_2_0_6
-      mavenArtifactManager_2_0_9
-      mavenArtifactManager_2_2_1
       mavenCommonArtifactFilters_1_3
-      mavenCore_2_0_6
-      mavenCore_2_0_9
-      mavenCore_2_2_1
       mavenDoxiaSinkApi_1_0_alpha7
-      mavenErrorDiagnostics_2_0_6
-      mavenErrorDiagnostics_2_0_9
-      mavenErrorDiagnostics_2_2_1
       mavenFiltering_1_1
-      mavenModel_2_0_6
-      mavenModel_2_0_9
-      mavenModel_2_2_1
-      mavenMonitor_2_0_6
-      mavenMonitor_2_0_9
-      mavenMonitor_2_2_1
-      mavenPluginDescriptor_2_0_6
-      mavenPluginDescriptor_2_0_9
-      mavenPluginDescriptor_2_2_1
-      mavenPluginParameterDocumenter_2_0_6
-      mavenPluginParameterDocumenter_2_0_9
-      mavenPluginParameterDocumenter_2_2_1
-      mavenProfile_2_0_6
-      mavenProfile_2_0_9
-      mavenProfile_2_2_1
-      mavenProject_2_0_6
-      mavenProject_2_0_9
-      mavenProject_2_2_1
       mavenPluginAnnotations_3_1
-      mavenPluginApi_2_0_6
-      mavenPluginApi_2_0_9
-      mavenPluginApi_2_2_1
-      mavenPluginRegistry_2_0_6
-      mavenPluginRegistry_2_0_9
-      mavenPluginRegistry_2_2_1
-      mavenReportingApi_2_0_6
-      mavenReportingApi_2_0_9
-      mavenRepositoryMetadata_2_0_6
-      mavenRepositoryMetadata_2_0_9
-      mavenRepositoryMetadata_2_2_1
-      mavenSettings_2_0_6
-      mavenSettings_2_0_9
-      mavenSettings_2_2_1
       mavenSharedIncremental_1_1
       mavenSharedUtils_0_1
       mavenSurefireApi_2_12_4

From 8a7a44c9181217e3640534b49b7a135023d22890 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Wed, 16 Nov 2016 12:39:59 -0500
Subject: [PATCH 10/10] javaPackages: Use artifactId/groupId

---
 pkgs/build-support/fetchurl/mirrors.nix       |   4 +-
 .../java-modules/apache/ant-launcher.nix      |   4 +-
 pkgs/development/java-modules/apache/ant.nix  |   4 +-
 .../java-modules/apache/commons-cli.nix       |   8 +-
 .../java-modules/apache/commons-io.nix        |   4 +-
 .../java-modules/apache/commons-lang.nix      |  12 +-
 .../java-modules/apache/commons-lang3.nix     |   4 +-
 .../apache/commons-logging-api.nix            |   4 +-
 .../java-modules/apache/xbean-reflect.nix     |   4 +-
 .../java-modules/beanshell/bsh.nix            |   4 +-
 .../java-modules/classworlds/classworlds.nix  |   8 +-
 .../java-modules/eclipse/aether-util.nix      |   4 +-
 .../java-modules/findbugs/jsr305.nix          |   4 +-
 .../java-modules/google/collections.nix       |   4 +-
 .../development/java-modules/hamcrest/all.nix |   4 +-
 .../java-modules/hamcrest/core.nix            |   4 +-
 .../java-modules/junit/default.nix            |   8 +-
 .../java-modules/log4j/default.nix            |   4 +-
 pkgs/development/java-modules/m2install.nix   |   6 +-
 .../java-modules/maven/archiver.nix           |   4 +-
 .../java-modules/maven/artifact-manager.nix   |  16 +-
 .../java-modules/maven/artifact.nix           |  24 +-
 .../maven/common-artifact-filters.nix         |  12 +-
 pkgs/development/java-modules/maven/core.nix  |  16 +-
 .../java-modules/maven/dependency-tree.nix    |   4 +-
 .../java-modules/maven/doxia-sink-api.nix     |  12 +-
 .../java-modules/maven/enforcer.nix           |   8 +-
 .../java-modules/maven/error-diagnostics.nix  |  16 +-
 .../java-modules/maven/filtering.nix          |   4 +-
 pkgs/development/java-modules/maven/model.nix |  20 +-
 .../java-modules/maven/monitor.nix            |  16 +-
 .../java-modules/maven/plugin-annotations.nix |   8 +-
 .../java-modules/maven/plugin-api.nix         |  20 +-
 .../java-modules/maven/plugin-descriptor.nix  |  16 +-
 .../maven/plugin-parameter-documenter.nix     |  16 +-
 .../java-modules/maven/plugin-registry.nix    |  16 +-
 .../maven/plugin-testing-harness.nix          |   4 +-
 .../java-modules/maven/profile.nix            |  16 +-
 .../java-modules/maven/project.nix            |  20 +-
 .../java-modules/maven/reporting-api.nix      |  16 +-
 .../maven/repository-metadata.nix             |  16 +-
 .../java-modules/maven/settings.nix           |  16 +-
 .../java-modules/maven/shared-incremental.nix |   4 +-
 .../java-modules/maven/shared-utils.nix       |   4 +-
 .../java-modules/maven/surefire-api.nix       |   8 +-
 .../java-modules/maven/surefire-booter.nix    |   8 +-
 .../java-modules/maven/surefire-common.nix    |   8 +-
 .../java-modules/maven/surefire-junit4.nix    |   4 +-
 .../java-modules/maven/toolchain.nix          |  12 +-
 .../development/java-modules/mavenPlugins.nix |  40 +-
 .../java-modules/mojo/animal-sniffer.nix      |   4 +-
 .../mojo/java-boot-classpath-detector.nix     |   4 +-
 pkgs/development/java-modules/ow2/asm-all.nix |   4 +-
 .../java-modules/plexus/archiver.nix          |   8 +-
 .../java-modules/plexus/build-api.nix         |   4 +-
 .../java-modules/plexus/classworlds.nix       |   8 +-
 .../java-modules/plexus/compiler-api.nix      |   4 +-
 .../java-modules/plexus/compiler-javac.nix    |   4 +-
 .../java-modules/plexus/compiler-manager.nix  |   4 +-
 .../plexus/component-annotations.nix          |   4 +-
 .../java-modules/plexus/container-default.nix |  12 +-
 .../java-modules/plexus/digest.nix            |   4 +-
 pkgs/development/java-modules/plexus/i18n.nix |   4 +-
 .../java-modules/plexus/interactivity-api.nix |   4 +-
 .../java-modules/plexus/interpolation.nix     |  16 +-
 pkgs/development/java-modules/plexus/io.nix   |   4 +-
 .../development/java-modules/plexus/utils.nix |  64 +--
 pkgs/development/java-modules/poms.nix        | 424 +++++++++---------
 pkgs/development/java-modules/sisu/guice.nix  |   4 +-
 .../java-modules/sisu/inject-bean.nix         |   4 +-
 .../java-modules/sisu/inject-plexus.nix       |   4 +-
 pkgs/development/java-modules/xerces/impl.nix |   4 +-
 .../java-modules/xml-apis/default.nix         |   4 +-
 73 files changed, 551 insertions(+), 551 deletions(-)

diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index 0304165828f0..f181ade10725 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -398,7 +398,7 @@ rec {
 
   # Maven Central
   maven = [
-    http://repo1.maven.org/maven2
-    http://central.maven.org/maven2
+    http://repo1.maven.org/maven2/
+    http://central.maven.org/maven2/
   ];
 }
diff --git a/pkgs/development/java-modules/apache/ant-launcher.nix b/pkgs/development/java-modules/apache/ant-launcher.nix
index 0e4d7b26765c..e6a2b0cae99d 100644
--- a/pkgs/development/java-modules/apache/ant-launcher.nix
+++ b/pkgs/development/java-modules/apache/ant-launcher.nix
@@ -3,8 +3,8 @@
 rec {
   antLauncher_1_8_2 = map (obj: fetchMaven {
     version = "1.8.2";
-    baseName = "ant-launcher";
-    package = "/org/apache/ant";
+    artifactId = "ant-launcher";
+    groupId = "org.apache.ant";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/apache/ant.nix b/pkgs/development/java-modules/apache/ant.nix
index fa83663f5ec2..b4a6aa68f448 100644
--- a/pkgs/development/java-modules/apache/ant.nix
+++ b/pkgs/development/java-modules/apache/ant.nix
@@ -3,8 +3,8 @@
 rec {
   ant_1_8_2 = map (obj: fetchMaven {
     version = "1.8.2";
-    baseName = "ant";
-    package = "/org/apache/ant";
+    artifactId = "ant";
+    groupId = "org.apache.ant";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/apache/commons-cli.nix b/pkgs/development/java-modules/apache/commons-cli.nix
index ffad5632b0a0..050d511b0a10 100644
--- a/pkgs/development/java-modules/apache/commons-cli.nix
+++ b/pkgs/development/java-modules/apache/commons-cli.nix
@@ -3,8 +3,8 @@
 rec {
   commonsCli_1_0 = map (obj: fetchMaven {
     version = "1.0";
-    baseName = "commons-cli";
-    package = "/commons-cli";
+    artifactId = "commons-cli";
+    groupId = "commons-cli";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   commonsCli_1_2 = map (obj: fetchMaven {
     version = "1.2";
-    baseName = "commons-cli";
-    package = "/commons-cli";
+    artifactId = "commons-cli";
+    groupId = "commons-cli";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/apache/commons-io.nix b/pkgs/development/java-modules/apache/commons-io.nix
index 612dcb85f8e1..70ce940ccf17 100644
--- a/pkgs/development/java-modules/apache/commons-io.nix
+++ b/pkgs/development/java-modules/apache/commons-io.nix
@@ -3,8 +3,8 @@
 rec {
   commonsIo_2_1 = map (obj: fetchMaven {
     version = "2.1";
-    baseName = "commons-io";
-    package = "/commons-io";
+    artifactId = "commons-io";
+    groupId = "commons-io";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/apache/commons-lang.nix b/pkgs/development/java-modules/apache/commons-lang.nix
index f6dc6b407efa..a2d71e9db0c8 100644
--- a/pkgs/development/java-modules/apache/commons-lang.nix
+++ b/pkgs/development/java-modules/apache/commons-lang.nix
@@ -3,8 +3,8 @@
 rec {
   commonsLang_2_1 = map (obj: fetchMaven {
     version = "2.1";
-    baseName = "commons-lang";
-    package = "/commons-lang";
+    artifactId = "commons-lang";
+    groupId = "commons-lang";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   commonsLang_2_3 = map (obj: fetchMaven {
     version = "2.3";
-    baseName = "commons-lang";
-    package = "/commons-lang";
+    artifactId = "commons-lang";
+    groupId = "commons-lang";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   commonsLang_2_6 = map (obj: fetchMaven {
     version = "2.6";
-    baseName = "commons-lang";
-    package = "/commons-lang";
+    artifactId = "commons-lang";
+    groupId = "commons-lang";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/apache/commons-lang3.nix b/pkgs/development/java-modules/apache/commons-lang3.nix
index 8b5498f362d4..63f68b925430 100644
--- a/pkgs/development/java-modules/apache/commons-lang3.nix
+++ b/pkgs/development/java-modules/apache/commons-lang3.nix
@@ -3,8 +3,8 @@
 rec {
   commonsLang3_3_1 = map (obj: fetchMaven {
     version = "3.1";
-    baseName = "commons-lang3";
-    package = "/org/apache/commons";
+    artifactId = "commons-lang3";
+    groupId = "org.apache.commons";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/apache/commons-logging-api.nix b/pkgs/development/java-modules/apache/commons-logging-api.nix
index 9aae04e42064..47750abe4623 100644
--- a/pkgs/development/java-modules/apache/commons-logging-api.nix
+++ b/pkgs/development/java-modules/apache/commons-logging-api.nix
@@ -3,8 +3,8 @@
 rec {
   commonsLoggingApi_1_1 = map (obj: fetchMaven {
     version = "1.1";
-    baseName = "commons-logging-api";
-    package = "/commons-logging";
+    artifactId = "commons-logging-api";
+    groupId = "commons-logging";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/apache/xbean-reflect.nix b/pkgs/development/java-modules/apache/xbean-reflect.nix
index c1e9916443c9..f0614ec99e36 100644
--- a/pkgs/development/java-modules/apache/xbean-reflect.nix
+++ b/pkgs/development/java-modules/apache/xbean-reflect.nix
@@ -3,8 +3,8 @@
 rec {
   xbeanReflect_3_4 = map (obj: fetchMaven {
     version = "3.4";
-    baseName = "xbean-reflect";
-    package = "/org/apache/xbean";
+    artifactId = "xbean-reflect";
+    groupId = "org.apache.xbean";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/beanshell/bsh.nix b/pkgs/development/java-modules/beanshell/bsh.nix
index e636fe557ecc..41756bb80d50 100644
--- a/pkgs/development/java-modules/beanshell/bsh.nix
+++ b/pkgs/development/java-modules/beanshell/bsh.nix
@@ -3,8 +3,8 @@
 rec {
   bsh_2_0_b4 = map (obj: fetchMaven {
     version = "2.0b4";
-    baseName = "bsh";
-    package = "/org/beanshell";
+    artifactId = "bsh";
+    groupId = "org.beanshell";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/classworlds/classworlds.nix b/pkgs/development/java-modules/classworlds/classworlds.nix
index 3a85cc4363ef..f8bbc07f1025 100644
--- a/pkgs/development/java-modules/classworlds/classworlds.nix
+++ b/pkgs/development/java-modules/classworlds/classworlds.nix
@@ -3,8 +3,8 @@
 rec {
   classworlds_1_1_alpha2 = map (obj: fetchMaven {
     version = "1.1-alpha-2";
-    baseName = "classworlds";
-    package = "/classworlds";
+    artifactId = "classworlds";
+    groupId = "classworlds";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   classworlds_1_1 = map (obj: fetchMaven {
     version = "1.1";
-    baseName = "classworlds";
-    package = "/classworlds";
+    artifactId = "classworlds";
+    groupId = "classworlds";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/eclipse/aether-util.nix b/pkgs/development/java-modules/eclipse/aether-util.nix
index 33ba3d5edd78..60aac560b9b2 100644
--- a/pkgs/development/java-modules/eclipse/aether-util.nix
+++ b/pkgs/development/java-modules/eclipse/aether-util.nix
@@ -3,8 +3,8 @@
 rec {
   aetherUtil_0_9_0_M2 = map (obj: fetchMaven {
     version = "0.9.0.M2";
-    baseName = "aether-util";
-    package = "/org/eclipse/aether";
+    artifactId = "aether-util";
+    groupId = "org.eclipse.aether";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/findbugs/jsr305.nix b/pkgs/development/java-modules/findbugs/jsr305.nix
index 466ce2476330..2e842410aafb 100644
--- a/pkgs/development/java-modules/findbugs/jsr305.nix
+++ b/pkgs/development/java-modules/findbugs/jsr305.nix
@@ -3,8 +3,8 @@
 rec {
   findbugsJsr305_2_0_1 = map (obj: fetchMaven {
     version = "2.0.1";
-    baseName = "jsr305";
-    package = "/com/google/code/findbugs";
+    artifactId = "jsr305";
+    groupId = "com.google.code.findbugs";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/google/collections.nix b/pkgs/development/java-modules/google/collections.nix
index 9898ddeaf31e..ec874c73e365 100644
--- a/pkgs/development/java-modules/google/collections.nix
+++ b/pkgs/development/java-modules/google/collections.nix
@@ -3,8 +3,8 @@
 rec {
   googleCollections_1_0 = map (obj: fetchMaven {
     version = "1.0";
-    baseName = "google-collections";
-    package = "/com/google/collections";
+    artifactId = "google-collections";
+    groupId = "com.google.collections";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/hamcrest/all.nix b/pkgs/development/java-modules/hamcrest/all.nix
index 2bba1ac92491..bab9e1b115d0 100644
--- a/pkgs/development/java-modules/hamcrest/all.nix
+++ b/pkgs/development/java-modules/hamcrest/all.nix
@@ -3,8 +3,8 @@
 rec {
   hamcrestAll_1_3 = map (obj: fetchMaven {
     version = "1.3";
-    baseName = "hamcrest-all";
-    package = "/org/hamcrest";
+    artifactId = "hamcrest-all";
+    groupId = "org.hamcrest";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/hamcrest/core.nix b/pkgs/development/java-modules/hamcrest/core.nix
index 104331f6f138..3842b8c5afa0 100644
--- a/pkgs/development/java-modules/hamcrest/core.nix
+++ b/pkgs/development/java-modules/hamcrest/core.nix
@@ -3,8 +3,8 @@
 rec {
   hamcrestCore_1_3 = map (obj: fetchMaven {
     version = "1.3";
-    baseName = "hamcrest-core";
-    package = "/org/hamcrest";
+    artifactId = "hamcrest-core";
+    groupId = "org.hamcrest";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/junit/default.nix b/pkgs/development/java-modules/junit/default.nix
index 2f315fa3161f..5017cb39602e 100644
--- a/pkgs/development/java-modules/junit/default.nix
+++ b/pkgs/development/java-modules/junit/default.nix
@@ -30,8 +30,8 @@ in rec {
 
   junit_3_8_1 = map (obj: fetchMaven {
     version = "3.8.1";
-    baseName = "junit";
-    package = "/junit";
+    artifactId = "junit";
+    groupId = "junit";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -41,8 +41,8 @@ in rec {
 
   junit_3_8_2 = map (obj: fetchMaven {
     version = "3.8.2";
-    baseName = "junit";
-    package = "/junit";
+    artifactId = "junit";
+    groupId = "junit";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/log4j/default.nix b/pkgs/development/java-modules/log4j/default.nix
index 65aaa41adb14..a8b1ea9f0217 100644
--- a/pkgs/development/java-modules/log4j/default.nix
+++ b/pkgs/development/java-modules/log4j/default.nix
@@ -3,8 +3,8 @@
 rec {
   log4j_1_2_12 = map (obj: fetchMaven {
     version = "1.2.12";
-    baseName = "log4j";
-    package = "/log4j";
+    artifactId = "log4j";
+    groupId = "log4j";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/m2install.nix b/pkgs/development/java-modules/m2install.nix
index 88e8efca1a15..7ebe655580e5 100644
--- a/pkgs/development/java-modules/m2install.nix
+++ b/pkgs/development/java-modules/m2install.nix
@@ -1,9 +1,9 @@
 { stdenv, fetchurl }:
-{ version, baseName, package, sha512, type ? "jar", suffix ? "" }:
+{ version, artifactId, groupId, sha512, type ? "jar", suffix ? "" }:
 
 let
-  name = "${baseName}-${version}";
-  m2Path = "${package}/${baseName}/${version}";
+  name = "${artifactId}-${version}";
+  m2Path = "${builtins.replaceStrings ["."] ["/"] groupId}/${artifactId}/${version}";
   m2File = "${name}${suffix}.${type}";
   src = fetchurl rec {
       inherit sha512;
diff --git a/pkgs/development/java-modules/maven/archiver.nix b/pkgs/development/java-modules/maven/archiver.nix
index ecab1f1e99ce..14c5a99d42ff 100644
--- a/pkgs/development/java-modules/maven/archiver.nix
+++ b/pkgs/development/java-modules/maven/archiver.nix
@@ -3,8 +3,8 @@
 rec {
   mavenArchiver_2_5 = map (obj: fetchMaven {
     version = "2.5";
-    baseName = "maven-archiver";
-    package = "/org/apache/maven";
+    artifactId = "maven-archiver";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/artifact-manager.nix b/pkgs/development/java-modules/maven/artifact-manager.nix
index 6d7e0caadfd5..0796d0665103 100644
--- a/pkgs/development/java-modules/maven/artifact-manager.nix
+++ b/pkgs/development/java-modules/maven/artifact-manager.nix
@@ -3,8 +3,8 @@
 rec {
   mavenArtifactManager_2_0_1 = map (obj: fetchMaven {
     version = "2.0.1";
-    baseName = "maven-artifact-manager";
-    package = "/org/apache/maven";
+    artifactId = "maven-artifact-manager";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenArtifactManager_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
-    baseName = "maven-artifact-manager";
-    package = "/org/apache/maven";
+    artifactId = "maven-artifact-manager";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenArtifactManager_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
-    baseName = "maven-artifact-manager";
-    package = "/org/apache/maven";
+    artifactId = "maven-artifact-manager";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   mavenArtifactManager_2_2_1 = map (obj: fetchMaven {
     version = "2.2.1";
-    baseName = "maven-artifact-manager";
-    package = "/org/apache/maven";
+    artifactId = "maven-artifact-manager";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/artifact.nix b/pkgs/development/java-modules/maven/artifact.nix
index 224570f910f8..bb0e578d5d63 100644
--- a/pkgs/development/java-modules/maven/artifact.nix
+++ b/pkgs/development/java-modules/maven/artifact.nix
@@ -3,8 +3,8 @@
 rec {
   mavenArtifact_2_0_1 = map (obj: fetchMaven {
     version = "2.0.1";
-    baseName = "maven-artifact";
-    package = "/org/apache/maven";
+    artifactId = "maven-artifact";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenArtifact_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
-    baseName = "maven-artifact";
-    package = "/org/apache/maven";
+    artifactId = "maven-artifact";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenArtifact_2_0_8 = map (obj: fetchMaven {
     version = "2.0.8";
-    baseName = "maven-artifact";
-    package = "/org/apache/maven";
+    artifactId = "maven-artifact";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   mavenArtifact_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
-    baseName = "maven-artifact";
-    package = "/org/apache/maven";
+    artifactId = "maven-artifact";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -47,8 +47,8 @@ rec {
 
   mavenArtifact_2_2_1 = map (obj: fetchMaven {
     version = "2.2.1";
-    baseName = "maven-artifact";
-    package = "/org/apache/maven";
+    artifactId = "maven-artifact";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -58,8 +58,8 @@ rec {
 
   mavenArtifact_3_0_3 = map (obj: fetchMaven {
     version = "3.0.3";
-    baseName = "maven-artifact";
-    package = "/org/apache/maven";
+    artifactId = "maven-artifact";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/common-artifact-filters.nix b/pkgs/development/java-modules/maven/common-artifact-filters.nix
index 3949882f98be..948dbc3baf6c 100644
--- a/pkgs/development/java-modules/maven/common-artifact-filters.nix
+++ b/pkgs/development/java-modules/maven/common-artifact-filters.nix
@@ -3,8 +3,8 @@
 rec {
   mavenCommonArtifactFilters_1_2 = map (obj: fetchMaven {
     version = "1.2";
-    baseName = "maven-common-artifact-filters";
-    package = "/org/apache/maven/shared";
+    artifactId = "maven-common-artifact-filters";
+    groupId = "org.apache.maven.shared";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenCommonArtifactFilters_1_3 = map (obj: fetchMaven {
     version = "1.3";
-    baseName = "maven-common-artifact-filters";
-    package = "/org/apache/maven/shared";
+    artifactId = "maven-common-artifact-filters";
+    groupId = "org.apache.maven.shared";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenCommonArtifactFilters_1_4 = map (obj: fetchMaven {
     version = "1.4";
-    baseName = "maven-common-artifact-filters";
-    package = "/org/apache/maven/shared";
+    artifactId = "maven-common-artifact-filters";
+    groupId = "org.apache.maven.shared";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/core.nix b/pkgs/development/java-modules/maven/core.nix
index ed3313bba595..5b45f89e9d54 100644
--- a/pkgs/development/java-modules/maven/core.nix
+++ b/pkgs/development/java-modules/maven/core.nix
@@ -3,8 +3,8 @@
 rec {
   mavenCore_2_0_1 = map (obj: fetchMaven {
     version = "2.0.1";
-    baseName = "maven-core";
-    package = "/org/apache/maven";
+    artifactId = "maven-core";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenCore_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
-    baseName = "maven-core";
-    package = "/org/apache/maven";
+    artifactId = "maven-core";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenCore_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
-    baseName = "maven-core";
-    package = "/org/apache/maven";
+    artifactId = "maven-core";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   mavenCore_2_2_1 = map (obj: fetchMaven {
     version = "2.2.1";
-    baseName = "maven-core";
-    package = "/org/apache/maven";
+    artifactId = "maven-core";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/dependency-tree.nix b/pkgs/development/java-modules/maven/dependency-tree.nix
index cdd626e58486..00d089ea249b 100644
--- a/pkgs/development/java-modules/maven/dependency-tree.nix
+++ b/pkgs/development/java-modules/maven/dependency-tree.nix
@@ -3,8 +3,8 @@
 rec {
   mavenDependencyTree_2_1 = map (obj: fetchMaven {
     version = "2.1";
-    baseName = "maven-dependency-tree";
-    package = "/org/apache/maven/shared";
+    artifactId = "maven-dependency-tree";
+    groupId = "org.apache.maven.shared";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/doxia-sink-api.nix b/pkgs/development/java-modules/maven/doxia-sink-api.nix
index 18ccf4b707a6..9fa1051cd80b 100644
--- a/pkgs/development/java-modules/maven/doxia-sink-api.nix
+++ b/pkgs/development/java-modules/maven/doxia-sink-api.nix
@@ -3,8 +3,8 @@
 rec {
   mavenDoxiaSinkApi_1_0_alpha6 = map (obj: fetchMaven {
     version = "1.0-alpha-6";
-    baseName = "doxia-sink-api";
-    package = "/org/apache/maven/doxia";
+    artifactId = "doxia-sink-api";
+    groupId = "org.apache.maven.doxia";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenDoxiaSinkApi_1_0_alpha7 = map (obj: fetchMaven {
     version = "1.0-alpha-7";
-    baseName = "doxia-sink-api";
-    package = "/org/apache/maven/doxia";
+    artifactId = "doxia-sink-api";
+    groupId = "org.apache.maven.doxia";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenDoxiaSinkApi_1_0_alpha10 = map (obj: fetchMaven {
     version = "1.0-alpha-10";
-    baseName = "doxia-sink-api";
-    package = "/org/apache/maven/doxia";
+    artifactId = "doxia-sink-api";
+    groupId = "org.apache.maven.doxia";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/enforcer.nix b/pkgs/development/java-modules/maven/enforcer.nix
index 83037e6adee6..014f678bc149 100644
--- a/pkgs/development/java-modules/maven/enforcer.nix
+++ b/pkgs/development/java-modules/maven/enforcer.nix
@@ -3,8 +3,8 @@
 rec {
   mavenEnforcerApi_1_3_1 = map (obj: fetchMaven {
     version = "1.3.1";
-    baseName = "enforcer-api";
-    package = "/org/apache/maven/enforcer";
+    artifactId = "enforcer-api";
+    groupId = "org.apache.maven.enforcer";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenEnforcerRules_1_3_1 = map (obj: fetchMaven {
     version = "1.3.1";
-    baseName = "enforcer-rules";
-    package = "/org/apache/maven/enforcer";
+    artifactId = "enforcer-rules";
+    groupId = "org.apache.maven.enforcer";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/error-diagnostics.nix b/pkgs/development/java-modules/maven/error-diagnostics.nix
index 6f22316edc7a..80cbf993a60d 100644
--- a/pkgs/development/java-modules/maven/error-diagnostics.nix
+++ b/pkgs/development/java-modules/maven/error-diagnostics.nix
@@ -3,8 +3,8 @@
 rec {
   mavenErrorDiagnostics_2_0_1 = map (obj: fetchMaven {
     version = "2.0.1";
-    baseName = "maven-error-diagnostics";
-    package = "/org/apache/maven";
+    artifactId = "maven-error-diagnostics";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenErrorDiagnostics_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
-    baseName = "maven-error-diagnostics";
-    package = "/org/apache/maven";
+    artifactId = "maven-error-diagnostics";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenErrorDiagnostics_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
-    baseName = "maven-error-diagnostics";
-    package = "/org/apache/maven";
+    artifactId = "maven-error-diagnostics";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   mavenErrorDiagnostics_2_2_1 = map (obj: fetchMaven {
     version = "2.2.1";
-    baseName = "maven-error-diagnostics";
-    package = "/org/apache/maven";
+    artifactId = "maven-error-diagnostics";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/filtering.nix b/pkgs/development/java-modules/maven/filtering.nix
index 5851a3db195d..963d6c6b646d 100644
--- a/pkgs/development/java-modules/maven/filtering.nix
+++ b/pkgs/development/java-modules/maven/filtering.nix
@@ -3,8 +3,8 @@
 rec {
   mavenFiltering_1_1 = map (obj: fetchMaven {
     version = "1.1";
-    baseName = "maven-filtering";
-    package = "/org/apache/maven/shared";
+    artifactId = "maven-filtering";
+    groupId = "org.apache.maven.shared";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/model.nix b/pkgs/development/java-modules/maven/model.nix
index 70bfd34e737c..2ae3bfe6034c 100644
--- a/pkgs/development/java-modules/maven/model.nix
+++ b/pkgs/development/java-modules/maven/model.nix
@@ -3,8 +3,8 @@
 rec {
   mavenModel_2_0_1 = map (obj: fetchMaven {
     version = "2.0.1";
-    baseName = "maven-model";
-    package = "/org/apache/maven";
+    artifactId = "maven-model";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenModel_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
-    baseName = "maven-model";
-    package = "/org/apache/maven";
+    artifactId = "maven-model";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenModel_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
-    baseName = "maven-model";
-    package = "/org/apache/maven";
+    artifactId = "maven-model";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   mavenModel_2_2_1 = map (obj: fetchMaven {
     version = "2.2.1";
-    baseName = "maven-model";
-    package = "/org/apache/maven";
+    artifactId = "maven-model";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -47,8 +47,8 @@ rec {
 
   mavenModel_3_0_3 = map (obj: fetchMaven {
     version = "3.0.3";
-    baseName = "maven-model";
-    package = "/org/apache/maven";
+    artifactId = "maven-model";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/monitor.nix b/pkgs/development/java-modules/maven/monitor.nix
index 0a71d7ba5a42..ce6c7c176941 100644
--- a/pkgs/development/java-modules/maven/monitor.nix
+++ b/pkgs/development/java-modules/maven/monitor.nix
@@ -3,8 +3,8 @@
 rec {
   mavenMonitor_2_0_1 = map (obj: fetchMaven {
     version = "2.0.1";
-    baseName = "maven-monitor";
-    package = "/org/apache/maven";
+    artifactId = "maven-monitor";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenMonitor_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
-    baseName = "maven-monitor";
-    package = "/org/apache/maven";
+    artifactId = "maven-monitor";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenMonitor_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
-    baseName = "maven-monitor";
-    package = "/org/apache/maven";
+    artifactId = "maven-monitor";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   mavenMonitor_2_2_1 = map (obj: fetchMaven {
     version = "2.2.1";
-    baseName = "maven-monitor";
-    package = "/org/apache/maven";
+    artifactId = "maven-monitor";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/plugin-annotations.nix b/pkgs/development/java-modules/maven/plugin-annotations.nix
index 6bd8928cf0fe..f852cc957a56 100644
--- a/pkgs/development/java-modules/maven/plugin-annotations.nix
+++ b/pkgs/development/java-modules/maven/plugin-annotations.nix
@@ -3,8 +3,8 @@
 rec {
   mavenPluginAnnotations_3_1 = map (obj: fetchMaven {
     version = "3.1";
-    baseName = "maven-plugin-annotations";
-    package = "/org/apache/maven/plugin-tools";
+    artifactId = "maven-plugin-annotations";
+    groupId = "org.apache.maven.plugin-tools";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenPluginAnnotations_3_2 = map (obj: fetchMaven {
     version = "3.2";
-    baseName = "maven-plugin-annotations";
-    package = "/org/apache/maven/plugin-tools";
+    artifactId = "maven-plugin-annotations";
+    groupId = "org.apache.maven.plugin-tools";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/plugin-api.nix b/pkgs/development/java-modules/maven/plugin-api.nix
index e4d8fbec39b2..be9642b0e206 100644
--- a/pkgs/development/java-modules/maven/plugin-api.nix
+++ b/pkgs/development/java-modules/maven/plugin-api.nix
@@ -3,8 +3,8 @@
 rec {
   mavenPluginApi_2_0_1 = map (obj: fetchMaven {
     version = "2.0.1";
-    baseName = "maven-plugin-api";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-api";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenPluginApi_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
-    baseName = "maven-plugin-api";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-api";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenPluginApi_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
-    baseName = "maven-plugin-api";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-api";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   mavenPluginApi_2_2_1 = map (obj: fetchMaven {
     version = "2.2.1";
-    baseName = "maven-plugin-api";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-api";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -47,8 +47,8 @@ rec {
 
   mavenPluginApi_3_0_3 = map (obj: fetchMaven {
     version = "3.0.3";
-    baseName = "maven-plugin-api";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-api";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/plugin-descriptor.nix b/pkgs/development/java-modules/maven/plugin-descriptor.nix
index 76f1bf5de1b2..dbdc09a46734 100644
--- a/pkgs/development/java-modules/maven/plugin-descriptor.nix
+++ b/pkgs/development/java-modules/maven/plugin-descriptor.nix
@@ -3,8 +3,8 @@
 rec {
   mavenPluginDescriptor_2_0_1 = map (obj: fetchMaven {
     version = "2.0.1";
-    baseName = "maven-plugin-descriptor";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-descriptor";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenPluginDescriptor_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
-    baseName = "maven-plugin-descriptor";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-descriptor";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenPluginDescriptor_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
-    baseName = "maven-plugin-descriptor";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-descriptor";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   mavenPluginDescriptor_2_2_1 = map (obj: fetchMaven {
     version = "2.2.1";
-    baseName = "maven-plugin-descriptor";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-descriptor";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix b/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix
index f3ef7c7fc5b0..9e11c0f40829 100644
--- a/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix
+++ b/pkgs/development/java-modules/maven/plugin-parameter-documenter.nix
@@ -3,8 +3,8 @@
 rec {
   mavenPluginParameterDocumenter_2_0_1 = map (obj: fetchMaven {
     version = "2.0.1";
-    baseName = "maven-plugin-parameter-documenter";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-parameter-documenter";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenPluginParameterDocumenter_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
-    baseName = "maven-plugin-parameter-documenter";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-parameter-documenter";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenPluginParameterDocumenter_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
-    baseName = "maven-plugin-parameter-documenter";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-parameter-documenter";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   mavenPluginParameterDocumenter_2_2_1 = map (obj: fetchMaven {
     version = "2.2.1";
-    baseName = "maven-plugin-parameter-documenter";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-parameter-documenter";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/plugin-registry.nix b/pkgs/development/java-modules/maven/plugin-registry.nix
index b75806182cff..f0074ef816ed 100644
--- a/pkgs/development/java-modules/maven/plugin-registry.nix
+++ b/pkgs/development/java-modules/maven/plugin-registry.nix
@@ -3,8 +3,8 @@
 rec {
   mavenPluginRegistry_2_0_1 = map (obj: fetchMaven {
     version = "2.0.1";
-    baseName = "maven-plugin-registry";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-registry";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenPluginRegistry_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
-    baseName = "maven-plugin-registry";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-registry";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenPluginRegistry_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
-    baseName = "maven-plugin-registry";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-registry";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   mavenPluginRegistry_2_2_1 = map (obj: fetchMaven {
     version = "2.2.1";
-    baseName = "maven-plugin-registry";
-    package = "/org/apache/maven";
+    artifactId = "maven-plugin-registry";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/plugin-testing-harness.nix b/pkgs/development/java-modules/maven/plugin-testing-harness.nix
index 754bcc08031f..a65f19620485 100644
--- a/pkgs/development/java-modules/maven/plugin-testing-harness.nix
+++ b/pkgs/development/java-modules/maven/plugin-testing-harness.nix
@@ -3,8 +3,8 @@
 rec {
   mavenPluginTestingHarness_1_1 = map (obj: fetchMaven {
     version = "1.1";
-    baseName = "maven-plugin-testing-harness";
-    package = "/org/apache/maven/shared";
+    artifactId = "maven-plugin-testing-harness";
+    groupId = "org.apache.maven.shared";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/profile.nix b/pkgs/development/java-modules/maven/profile.nix
index b160fb4e9437..6940fafae821 100644
--- a/pkgs/development/java-modules/maven/profile.nix
+++ b/pkgs/development/java-modules/maven/profile.nix
@@ -3,8 +3,8 @@
 rec {
   mavenProfile_2_0_1 = map (obj: fetchMaven {
     version = "2.0.1";
-    baseName = "maven-profile";
-    package = "/org/apache/maven";
+    artifactId = "maven-profile";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenProfile_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
-    baseName = "maven-profile";
-    package = "/org/apache/maven";
+    artifactId = "maven-profile";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenProfile_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
-    baseName = "maven-profile";
-    package = "/org/apache/maven";
+    artifactId = "maven-profile";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   mavenProfile_2_2_1 = map (obj: fetchMaven {
     version = "2.2.1";
-    baseName = "maven-profile";
-    package = "/org/apache/maven";
+    artifactId = "maven-profile";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/project.nix b/pkgs/development/java-modules/maven/project.nix
index f1ff4f05c4c5..0b07d8b8679b 100644
--- a/pkgs/development/java-modules/maven/project.nix
+++ b/pkgs/development/java-modules/maven/project.nix
@@ -3,8 +3,8 @@
 rec {
   mavenProject_2_0_1 = map (obj: fetchMaven {
     version = "2.0.1";
-    baseName = "maven-project";
-    package = "/org/apache/maven";
+    artifactId = "maven-project";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenProject_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
-    baseName = "maven-project";
-    package = "/org/apache/maven";
+    artifactId = "maven-project";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenProject_2_0_8 = map (obj: fetchMaven {
     version = "2.0.8";
-    baseName = "maven-project";
-    package = "/org/apache/maven";
+    artifactId = "maven-project";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   mavenProject_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
-    baseName = "maven-project";
-    package = "/org/apache/maven";
+    artifactId = "maven-project";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -47,8 +47,8 @@ rec {
 
   mavenProject_2_2_1 = map (obj: fetchMaven {
     version = "2.2.1";
-    baseName = "maven-project";
-    package = "/org/apache/maven";
+    artifactId = "maven-project";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/reporting-api.nix b/pkgs/development/java-modules/maven/reporting-api.nix
index afb949d79c53..8a508cf15053 100644
--- a/pkgs/development/java-modules/maven/reporting-api.nix
+++ b/pkgs/development/java-modules/maven/reporting-api.nix
@@ -3,8 +3,8 @@
 rec {
   mavenReportingApi_2_0_1 = map (obj: fetchMaven {
     version = "2.0.1";
-    baseName = "maven-reporting-api";
-    package = "/org/apache/maven/reporting";
+    artifactId = "maven-reporting-api";
+    groupId = "org.apache.maven.reporting";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenReportingApi_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
-    baseName = "maven-reporting-api";
-    package = "/org/apache/maven/reporting";
+    artifactId = "maven-reporting-api";
+    groupId = "org.apache.maven.reporting";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenReportingApi_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
-    baseName = "maven-reporting-api";
-    package = "/org/apache/maven/reporting";
+    artifactId = "maven-reporting-api";
+    groupId = "org.apache.maven.reporting";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   mavenReportingApi_2_2_1 = map (obj: fetchMaven {
     version = "2.2.1";
-    baseName = "maven-reporting-api";
-    package = "/org/apache/maven/reporting";
+    artifactId = "maven-reporting-api";
+    groupId = "org.apache.maven.reporting";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/repository-metadata.nix b/pkgs/development/java-modules/maven/repository-metadata.nix
index 1ed2717ac4f3..443a1acd4513 100644
--- a/pkgs/development/java-modules/maven/repository-metadata.nix
+++ b/pkgs/development/java-modules/maven/repository-metadata.nix
@@ -3,8 +3,8 @@
 rec {
   mavenRepositoryMetadata_2_0_1 = map (obj: fetchMaven {
     version = "2.0.1";
-    baseName = "maven-repository-metadata";
-    package = "/org/apache/maven";
+    artifactId = "maven-repository-metadata";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenRepositoryMetadata_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
-    baseName = "maven-repository-metadata";
-    package = "/org/apache/maven";
+    artifactId = "maven-repository-metadata";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenRepositoryMetadata_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
-    baseName = "maven-repository-metadata";
-    package = "/org/apache/maven";
+    artifactId = "maven-repository-metadata";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   mavenRepositoryMetadata_2_2_1 = map (obj: fetchMaven {
     version = "2.2.1";
-    baseName = "maven-repository-metadata";
-    package = "/org/apache/maven";
+    artifactId = "maven-repository-metadata";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/settings.nix b/pkgs/development/java-modules/maven/settings.nix
index a18532fa3627..6b42082cfd8a 100644
--- a/pkgs/development/java-modules/maven/settings.nix
+++ b/pkgs/development/java-modules/maven/settings.nix
@@ -3,8 +3,8 @@
 rec {
   mavenSettings_2_0_1 = map (obj: fetchMaven {
     version = "2.0.1";
-    baseName = "maven-settings";
-    package = "/org/apache/maven";
+    artifactId = "maven-settings";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenSettings_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
-    baseName = "maven-settings";
-    package = "/org/apache/maven";
+    artifactId = "maven-settings";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenSettings_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
-    baseName = "maven-settings";
-    package = "/org/apache/maven";
+    artifactId = "maven-settings";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   mavenSettings_2_2_1 = map (obj: fetchMaven {
     version = "2.2.1";
-    baseName = "maven-settings";
-    package = "/org/apache/maven";
+    artifactId = "maven-settings";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/shared-incremental.nix b/pkgs/development/java-modules/maven/shared-incremental.nix
index 2d4ec372be45..67c44986d0a0 100644
--- a/pkgs/development/java-modules/maven/shared-incremental.nix
+++ b/pkgs/development/java-modules/maven/shared-incremental.nix
@@ -3,8 +3,8 @@
 rec {
   mavenSharedIncremental_1_1 = map (obj: fetchMaven {
     version = "1.1";
-    baseName = "maven-shared-incremental";
-    package = "/org/apache/maven/shared";
+    artifactId = "maven-shared-incremental";
+    groupId = "org.apache.maven.shared";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/shared-utils.nix b/pkgs/development/java-modules/maven/shared-utils.nix
index 9b56075383d0..b3cfc9280914 100644
--- a/pkgs/development/java-modules/maven/shared-utils.nix
+++ b/pkgs/development/java-modules/maven/shared-utils.nix
@@ -3,8 +3,8 @@
 rec {
   mavenSharedUtils_0_1 = map (obj: fetchMaven {
     version = "0.1";
-    baseName = "maven-shared-utils";
-    package = "/org/apache/maven/shared";
+    artifactId = "maven-shared-utils";
+    groupId = "org.apache.maven.shared";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/surefire-api.nix b/pkgs/development/java-modules/maven/surefire-api.nix
index cd422bbb7585..c1f7fcc3f76c 100644
--- a/pkgs/development/java-modules/maven/surefire-api.nix
+++ b/pkgs/development/java-modules/maven/surefire-api.nix
@@ -3,8 +3,8 @@
 rec {
   mavenSurefireApi_2_12_4 = map (obj: fetchMaven {
     version = "2.12.4";
-    baseName = "surefire-api";
-    package = "/org/apache/maven/surefire";
+    artifactId = "surefire-api";
+    groupId = "org.apache.maven.surefire";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenSurefireApi_2_17 = map (obj: fetchMaven {
     version = "2.17";
-    baseName = "surefire-api";
-    package = "/org/apache/maven/surefire";
+    artifactId = "surefire-api";
+    groupId = "org.apache.maven.surefire";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/surefire-booter.nix b/pkgs/development/java-modules/maven/surefire-booter.nix
index f7fb8068a26c..b62aa86bf45c 100644
--- a/pkgs/development/java-modules/maven/surefire-booter.nix
+++ b/pkgs/development/java-modules/maven/surefire-booter.nix
@@ -3,8 +3,8 @@
 rec {
   mavenSurefireBooter_2_12_4 = map (obj: fetchMaven {
     version = "2.12.4";
-    baseName = "surefire-booter";
-    package = "/org/apache/maven/surefire";
+    artifactId = "surefire-booter";
+    groupId = "org.apache.maven.surefire";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenSurefireBooter_2_17 = map (obj: fetchMaven {
     version = "2.17";
-    baseName = "surefire-booter";
-    package = "/org/apache/maven/surefire";
+    artifactId = "surefire-booter";
+    groupId = "org.apache.maven.surefire";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/surefire-common.nix b/pkgs/development/java-modules/maven/surefire-common.nix
index 4e56b0c5a86e..bc0573f6b706 100644
--- a/pkgs/development/java-modules/maven/surefire-common.nix
+++ b/pkgs/development/java-modules/maven/surefire-common.nix
@@ -3,8 +3,8 @@
 rec {
   mavenSurefireCommon_2_12_4 = map (obj: fetchMaven {
     version = "2.12.4";
-    baseName = "maven-surefire-common";
-    package = "/org/apache/maven/surefire";
+    artifactId = "maven-surefire-common";
+    groupId = "org.apache.maven.surefire";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenSurefireCommon_2_17 = map (obj: fetchMaven {
     version = "2.17";
-    baseName = "maven-surefire-common";
-    package = "/org/apache/maven/surefire";
+    artifactId = "maven-surefire-common";
+    groupId = "org.apache.maven.surefire";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/surefire-junit4.nix b/pkgs/development/java-modules/maven/surefire-junit4.nix
index 83aaebc7f6de..1374080d0874 100644
--- a/pkgs/development/java-modules/maven/surefire-junit4.nix
+++ b/pkgs/development/java-modules/maven/surefire-junit4.nix
@@ -3,8 +3,8 @@
 rec {
   mavenSurefireJunit4_2_12_4 = map (obj: fetchMaven {
     version = "2.12.4";
-    baseName = "surefire-junit4";
-    package = "/org/apache/maven/surefire";
+    artifactId = "surefire-junit4";
+    groupId = "org.apache.maven.surefire";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/maven/toolchain.nix b/pkgs/development/java-modules/maven/toolchain.nix
index 97ea74a5e529..864d3b98f7ba 100644
--- a/pkgs/development/java-modules/maven/toolchain.nix
+++ b/pkgs/development/java-modules/maven/toolchain.nix
@@ -3,8 +3,8 @@
 rec {
   mavenToolchain_1_0 = map (obj: fetchMaven {
     version = "1.0";
-    baseName = "maven-toolchain";
-    package = "/org/apache/maven";
+    artifactId = "maven-toolchain";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   mavenToolchain_2_0_9 = map (obj: fetchMaven {
     version = "2.0.9";
-    baseName = "maven-toolchain";
-    package = "/org/apache/maven";
+    artifactId = "maven-toolchain";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   mavenToolchain_2_2_1 = map (obj: fetchMaven {
     version = "2.2.1";
-    baseName = "maven-toolchain";
-    package = "/org/apache/maven";
+    artifactId = "maven-toolchain";
+    groupId = "org.apache.maven";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/mavenPlugins.nix b/pkgs/development/java-modules/mavenPlugins.nix
index 5cd022b68377..e9ce5b1ce8cf 100644
--- a/pkgs/development/java-modules/mavenPlugins.nix
+++ b/pkgs/development/java-modules/mavenPlugins.nix
@@ -10,8 +10,8 @@ in rec {
 
   animalSniffer_1_11 = map (obj: fetchMaven {
     version = "1.11";
-    baseName = "animal-sniffer-maven-plugin";
-    package = "/org/codehaus/mojo";
+    artifactId = "animal-sniffer-maven-plugin";
+    groupId = "org.codehaus.mojo";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -21,8 +21,8 @@ in rec {
 
   mavenClean_2_5 = map (obj: fetchMaven rec {
     version = "2.5";
-    baseName = "maven-clean-plugin";
-    package = "/org/apache/maven/plugins";
+    artifactId = "maven-clean-plugin";
+    groupId = "org.apache.maven.plugins";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -32,8 +32,8 @@ in rec {
 
   mavenCompiler_3_1 = map (obj: fetchMaven rec {
     version = "3.1";
-    baseName = "maven-compiler-plugin";
-    package = "/org/apache/maven/plugins";
+    artifactId = "maven-compiler-plugin";
+    groupId = "org.apache.maven.plugins";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -43,8 +43,8 @@ in rec {
 
   mavenEnforcer_1_3_1 = map (obj: fetchMaven rec {
     version = "1.3.1";
-    baseName = "maven-enforcer-plugin";
-    package = "/org/apache/maven/plugins";
+    artifactId = "maven-enforcer-plugin";
+    groupId = "org.apache.maven.plugins";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -54,8 +54,8 @@ in rec {
 
   mavenInstall_2_4 = map (obj: fetchMaven rec {
     version = "2.4";
-    baseName = "maven-install-plugin";
-    package = "/org/apache/maven/plugins";
+    artifactId = "maven-install-plugin";
+    groupId = "org.apache.maven.plugins";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -65,8 +65,8 @@ in rec {
 
   mavenJar_2_4 = map (obj: fetchMaven rec {
     version = "2.4";
-    baseName = "maven-jar-plugin";
-    package = "/org/apache/maven/plugins";
+    artifactId = "maven-jar-plugin";
+    groupId = "org.apache.maven.plugins";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -76,8 +76,8 @@ in rec {
 
   mavenReplacer_1_5_3 = map (obj: fetchMaven rec {
     version = "1.5.3";
-    baseName = "replacer";
-    package = "/com/google/code/maven-replacer-plugin";
+    artifactId = "replacer";
+    groupId = "com.google.code.maven-replacer-plugin";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -87,8 +87,8 @@ in rec {
 
   mavenResources_2_6 = map (obj: fetchMaven rec {
     version = "2.6";
-    baseName = "maven-resources-plugin";
-    package = "/org/apache/maven/plugins";
+    artifactId = "maven-resources-plugin";
+    groupId = "org.apache.maven.plugins";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -98,8 +98,8 @@ in rec {
 
   mavenSurefire_2_12_4 = map (obj: fetchMaven rec {
     version = "2.12.4";
-    baseName = "maven-surefire-plugin";
-    package = "/org/apache/maven/plugins";
+    artifactId = "maven-surefire-plugin";
+    groupId = "org.apache.maven.plugins";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -109,8 +109,8 @@ in rec {
 
   mavenSurefire_2_17 = map (obj: fetchMaven rec {
     version = "2.17";
-    baseName = "maven-surefire-plugin";
-    package = "/org/apache/maven/plugins";
+    artifactId = "maven-surefire-plugin";
+    groupId = "org.apache.maven.plugins";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/mojo/animal-sniffer.nix b/pkgs/development/java-modules/mojo/animal-sniffer.nix
index b6a5565f6fc5..dd9b1d1b0aa5 100644
--- a/pkgs/development/java-modules/mojo/animal-sniffer.nix
+++ b/pkgs/development/java-modules/mojo/animal-sniffer.nix
@@ -3,8 +3,8 @@
 rec {
   mojoAnimalSniffer_1_11 = map (obj: fetchMaven {
     version = "1.11";
-    baseName = "animal-sniffer";
-    package = "/org/codehaus/mojo";
+    artifactId = "animal-sniffer";
+    groupId = "org.codehaus.mojo";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/mojo/java-boot-classpath-detector.nix b/pkgs/development/java-modules/mojo/java-boot-classpath-detector.nix
index 95eb52ae3e80..245daa5fdb90 100644
--- a/pkgs/development/java-modules/mojo/java-boot-classpath-detector.nix
+++ b/pkgs/development/java-modules/mojo/java-boot-classpath-detector.nix
@@ -3,8 +3,8 @@
 rec {
   mojoJavaBootClasspathDetector_1_11 = map (obj: fetchMaven {
     version = "1.11";
-    baseName = "java-boot-classpath-detector";
-    package = "/org/codehaus/mojo";
+    artifactId = "java-boot-classpath-detector";
+    groupId = "org.codehaus.mojo";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/ow2/asm-all.nix b/pkgs/development/java-modules/ow2/asm-all.nix
index 2fee6529f16e..08d18745ed7f 100644
--- a/pkgs/development/java-modules/ow2/asm-all.nix
+++ b/pkgs/development/java-modules/ow2/asm-all.nix
@@ -3,8 +3,8 @@
 rec {
   ow2AsmAll_4_0 = map (obj: fetchMaven {
     version = "4.0";
-    baseName = "asm-all";
-    package = "/org/ow2/asm";
+    artifactId = "asm-all";
+    groupId = "org.ow2.asm";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/plexus/archiver.nix b/pkgs/development/java-modules/plexus/archiver.nix
index 3a2b0a347e3d..384b92859762 100644
--- a/pkgs/development/java-modules/plexus/archiver.nix
+++ b/pkgs/development/java-modules/plexus/archiver.nix
@@ -3,8 +3,8 @@
 rec {
   plexusArchiver_1_0_alpha7 = map (obj: fetchMaven {
     version = "1.0-alpha-7";
-    baseName = "plexus-archiver";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-archiver";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   plexusArchiver_2_1 = map (obj: fetchMaven {
     version = "2.1";
-    baseName = "plexus-archiver";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-archiver";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/plexus/build-api.nix b/pkgs/development/java-modules/plexus/build-api.nix
index 2425a6f12bae..c417c955b69b 100644
--- a/pkgs/development/java-modules/plexus/build-api.nix
+++ b/pkgs/development/java-modules/plexus/build-api.nix
@@ -3,8 +3,8 @@
 rec {
   plexusBuildApi_0_0_4 = map (obj: fetchMaven {
     version = "0.0.4";
-    baseName = "plexus-build-api";
-    package = "/org/sonatype/plexus";
+    artifactId = "plexus-build-api";
+    groupId = "org.sonatype.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/plexus/classworlds.nix b/pkgs/development/java-modules/plexus/classworlds.nix
index 308287a29048..6ff1755e8f53 100644
--- a/pkgs/development/java-modules/plexus/classworlds.nix
+++ b/pkgs/development/java-modules/plexus/classworlds.nix
@@ -3,8 +3,8 @@
 rec {
   plexusClassworlds_2_2_2 = map (obj: fetchMaven {
     version = "2.2.2";
-    baseName = "plexus-classworlds";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-classworlds";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   plexusClassworlds_2_4 = map (obj: fetchMaven {
     version = "2.4";
-    baseName = "plexus-classworlds";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-classworlds";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/plexus/compiler-api.nix b/pkgs/development/java-modules/plexus/compiler-api.nix
index 2ef5d3cdab15..11baab0950d0 100644
--- a/pkgs/development/java-modules/plexus/compiler-api.nix
+++ b/pkgs/development/java-modules/plexus/compiler-api.nix
@@ -3,8 +3,8 @@
 rec {
   plexusCompilerApi_2_2 = map (obj: fetchMaven {
     version = "2.2";
-    baseName = "plexus-compiler-api";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-compiler-api";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/plexus/compiler-javac.nix b/pkgs/development/java-modules/plexus/compiler-javac.nix
index e3f4defd97ad..a42064a0e9e8 100644
--- a/pkgs/development/java-modules/plexus/compiler-javac.nix
+++ b/pkgs/development/java-modules/plexus/compiler-javac.nix
@@ -3,8 +3,8 @@
 rec {
   plexusCompilerJavac_2_2 = map (obj: fetchMaven {
     version = "2.2";
-    baseName = "plexus-compiler-javac";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-compiler-javac";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/plexus/compiler-manager.nix b/pkgs/development/java-modules/plexus/compiler-manager.nix
index 0675fff5004e..f7221a96627f 100644
--- a/pkgs/development/java-modules/plexus/compiler-manager.nix
+++ b/pkgs/development/java-modules/plexus/compiler-manager.nix
@@ -3,8 +3,8 @@
 rec {
   plexusCompilerManager_2_2 = map (obj: fetchMaven {
     version = "2.2";
-    baseName = "plexus-compiler-manager";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-compiler-manager";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/plexus/component-annotations.nix b/pkgs/development/java-modules/plexus/component-annotations.nix
index 949238001bea..fd3fc80e7e05 100644
--- a/pkgs/development/java-modules/plexus/component-annotations.nix
+++ b/pkgs/development/java-modules/plexus/component-annotations.nix
@@ -3,8 +3,8 @@
 rec {
   plexusComponentAnnotations_1_5_5 = map (obj: fetchMaven {
     version = "1.5.5";
-    baseName = "plexus-component-annotations";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-component-annotations";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/plexus/container-default.nix b/pkgs/development/java-modules/plexus/container-default.nix
index 4b9949f3eb3c..375a1913afcd 100644
--- a/pkgs/development/java-modules/plexus/container-default.nix
+++ b/pkgs/development/java-modules/plexus/container-default.nix
@@ -3,8 +3,8 @@
 rec {
   plexusContainerDefault_1_0_alpha9 = map (obj: fetchMaven {
     version = "1.0-alpha-9";
-    baseName = "plexus-container-default";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-container-default";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   plexusContainerDefault_1_0_alpha9_stable1 = map (obj: fetchMaven {
     version = "1.0-alpha-9-stable-1";
-    baseName = "plexus-container-default";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-container-default";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   plexusContainerDefault_1_5_5 = map (obj: fetchMaven {
     version = "1.5.5";
-    baseName = "plexus-container-default";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-container-default";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/plexus/digest.nix b/pkgs/development/java-modules/plexus/digest.nix
index 8bd73891779f..be2013a26760 100644
--- a/pkgs/development/java-modules/plexus/digest.nix
+++ b/pkgs/development/java-modules/plexus/digest.nix
@@ -3,8 +3,8 @@
 rec {
   plexusDigest_1_0 = map (obj: fetchMaven {
     version = "1.0";
-    baseName = "plexus-digest";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-digest";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/plexus/i18n.nix b/pkgs/development/java-modules/plexus/i18n.nix
index 7af0cd17de8e..5b34cde0503c 100644
--- a/pkgs/development/java-modules/plexus/i18n.nix
+++ b/pkgs/development/java-modules/plexus/i18n.nix
@@ -3,8 +3,8 @@
 rec {
   plexusI18n_1_0_beta6 = map (obj: fetchMaven {
     version = "1.0-beta-6";
-    baseName = "plexus-i18n";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-i18n";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/plexus/interactivity-api.nix b/pkgs/development/java-modules/plexus/interactivity-api.nix
index 9d62aec70f47..8ada106f48fd 100644
--- a/pkgs/development/java-modules/plexus/interactivity-api.nix
+++ b/pkgs/development/java-modules/plexus/interactivity-api.nix
@@ -3,8 +3,8 @@
 rec {
   plexusInteractivityApi_1_0_alpha4 = map (obj: fetchMaven {
     version = "1.0-alpha-4";
-    baseName = "plexus-interactivity-api";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-interactivity-api";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/plexus/interpolation.nix b/pkgs/development/java-modules/plexus/interpolation.nix
index 2d08495532d1..90ff3de6a3fe 100644
--- a/pkgs/development/java-modules/plexus/interpolation.nix
+++ b/pkgs/development/java-modules/plexus/interpolation.nix
@@ -3,8 +3,8 @@
 rec {
   plexusInterpolation_1_11 = map (obj: fetchMaven {
     version = "1.11";
-    baseName = "plexus-interpolation";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-interpolation";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   plexusInterpolation_1_12 = map (obj: fetchMaven {
     version = "1.12";
-    baseName = "plexus-interpolation";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-interpolation";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   plexusInterpolation_1_13 = map (obj: fetchMaven {
     version = "1.13";
-    baseName = "plexus-interpolation";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-interpolation";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   plexusInterpolation_1_15 = map (obj: fetchMaven {
     version = "1.15";
-    baseName = "plexus-interpolation";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-interpolation";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/plexus/io.nix b/pkgs/development/java-modules/plexus/io.nix
index 1b17ae3c2cac..eee41f5ed2fd 100644
--- a/pkgs/development/java-modules/plexus/io.nix
+++ b/pkgs/development/java-modules/plexus/io.nix
@@ -3,8 +3,8 @@
 rec {
   plexusIo_2_0_2 = map (obj: fetchMaven {
     version = "2.0.2";
-    baseName = "plexus-io";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-io";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/plexus/utils.nix b/pkgs/development/java-modules/plexus/utils.nix
index ca46c0d4d624..ce0537cea7d8 100644
--- a/pkgs/development/java-modules/plexus/utils.nix
+++ b/pkgs/development/java-modules/plexus/utils.nix
@@ -3,8 +3,8 @@
 rec {
   plexusUtils_1_0_4 = map (obj: fetchMaven {
     version = "1.0.4";
-    baseName = "plexus-utils";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-utils";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -14,8 +14,8 @@ rec {
 
   plexusUtils_1_0_5 = map (obj: fetchMaven {
     version = "1.0.5";
-    baseName = "plexus-utils";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-utils";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -25,8 +25,8 @@ rec {
 
   plexusUtils_1_1 = map (obj: fetchMaven {
     version = "1.1";
-    baseName = "plexus-utils";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-utils";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -36,8 +36,8 @@ rec {
 
   plexusUtils_1_4_1 = map (obj: fetchMaven {
     version = "1.4.1";
-    baseName = "plexus-utils";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-utils";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -47,8 +47,8 @@ rec {
 
   plexusUtils_1_4_5 = map (obj: fetchMaven {
     version = "1.4.5";
-    baseName = "plexus-utils";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-utils";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -58,8 +58,8 @@ rec {
 
   plexusUtils_1_4_9 = map (obj: fetchMaven {
     version = "1.4.9";
-    baseName = "plexus-utils";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-utils";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -69,8 +69,8 @@ rec {
 
   plexusUtils_1_5_1 = map (obj: fetchMaven {
     version = "1.5.1";
-    baseName = "plexus-utils";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-utils";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -80,8 +80,8 @@ rec {
 
   plexusUtils_1_5_5 = map (obj: fetchMaven {
     version = "1.5.5";
-    baseName = "plexus-utils";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-utils";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -91,8 +91,8 @@ rec {
 
   plexusUtils_1_5_6 = map (obj: fetchMaven {
     version = "1.5.6";
-    baseName = "plexus-utils";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-utils";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -102,8 +102,8 @@ rec {
 
   plexusUtils_1_5_8 = map (obj: fetchMaven {
     version = "1.5.8";
-    baseName = "plexus-utils";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-utils";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -113,8 +113,8 @@ rec {
 
   plexusUtils_1_5_15 = map (obj: fetchMaven {
     version = "1.5.15";
-    baseName = "plexus-utils";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-utils";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -124,8 +124,8 @@ rec {
 
   plexusUtils_2_0_5 = map (obj: fetchMaven {
     version = "2.0.5";
-    baseName = "plexus-utils";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-utils";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -135,8 +135,8 @@ rec {
 
   plexusUtils_2_0_6 = map (obj: fetchMaven {
     version = "2.0.6";
-    baseName = "plexus-utils";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-utils";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -146,8 +146,8 @@ rec {
 
   plexusUtils_3_0 = map (obj: fetchMaven {
     version = "3.0";
-    baseName = "plexus-utils";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-utils";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -157,8 +157,8 @@ rec {
 
   plexusUtils_3_0_5 = map (obj: fetchMaven {
     version = "3.0.5";
-    baseName = "plexus-utils";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-utils";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
@@ -168,8 +168,8 @@ rec {
 
   plexusUtils_3_0_8 = map (obj: fetchMaven {
     version = "3.0.8";
-    baseName = "plexus-utils";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-utils";
+    groupId = "org.codehaus.plexus";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/poms.nix b/pkgs/development/java-modules/poms.nix
index 7feff9548a1f..610f98a7e466 100644
--- a/pkgs/development/java-modules/poms.nix
+++ b/pkgs/development/java-modules/poms.nix
@@ -3,848 +3,848 @@
 rec {
   aether_0_9_0_M2 = fetchMaven {
     version = "0.9.0.M2";
-    baseName = "aether";
-    package = "/org/eclipse/aether";
+    artifactId = "aether";
+    groupId = "org.eclipse.aether";
     sha512 = "0ampl2jkkc1f5cbigmi1b5nnxhb9qqzz0nyfb5a2vzbw3ri7ry8dj6xgjznlpxib46zxgaxcsvhxq2yx6a9i8chnzvgghccwpl808yi";
     type = "pom";
   };
 
   animalSnifferParent_1_11 = fetchMaven {
     version = "1.11";
-    baseName = "animal-sniffer-parent";
-    package = "/org/codehaus/mojo";
+    artifactId = "animal-sniffer-parent";
+    groupId = "org.codehaus.mojo";
     sha512 = "3w9l3b4qxzmlwmaqppn1d794ycqf5piilv44fc74jccbgahdsq1as8dvyknnj2610yklwxx3146s7f0c3ms8y93alv02wybjwk5fd07";
     type = "pom";
   };
 
   antParent_1_8_2 = fetchMaven {
     version = "1.8.2";
-    baseName = "ant-parent";
-    package = "/org/apache/ant";
+    artifactId = "ant-parent";
+    groupId = "org.apache.ant";
     sha512 = "1q560n9xbqk9qpprvm0nigd5nhm9s8m027qxjmzhay083sjrazscpaly4mzgry5lpdmr3xyhly1r1s88879y04qr5xqzqh0j45j943x";
     type = "pom";
   };
 
   apache_1 = fetchMaven {
     version = "1";
-    baseName = "apache";
-    package = "/org/apache";
+    artifactId = "apache";
+    groupId = "org.apache";
     sha512 = "0vbf7mbs61n13dmxndvzkafr0sg9p7g45ng9j1917cz8a9m4zflqf7xvpp9wfprmb4d1wd3ay2hhy9brxryqmvx41wfjlk9ahg34k0h";
     type = "pom";
   };
 
   apache_3 = fetchMaven {
     version = "3";
-    baseName = "apache";
-    package = "/org/apache";
+    artifactId = "apache";
+    groupId = "org.apache";
     sha512 = "3vvqxycj7zxa9dfxa6f8i2azdvxc7ci68fk3nlkjvhsglmwr39wf6cwgj6qqlrw3mabzs714lgz0wdacsidncadxzfw774ck20dq1rf";
     type = "pom";
   };
 
   apache_4 = fetchMaven {
     version = "4";
-    baseName = "apache";
-    package = "/org/apache";
+    artifactId = "apache";
+    groupId = "org.apache";
     sha512 = "3yb998i1azfxdjk2ndcc19gzx12i0bdi6jqwp5mhwp9ac5dfsplkb5np4bkpsb948y8kpvw1pyvkx8rw0a0rvkxqzxr98ng5nq80vw6";
     type = "pom";
   };
 
   apache_5 = fetchMaven {
     version = "5";
-    baseName = "apache";
-    package = "/org/apache";
+    artifactId = "apache";
+    groupId = "org.apache";
     sha512 = "11l6b46mwm404vahylssab5mj4a1fw3zrjhsz3mcj5x3awnqa03131j8phias2n0rppn53xcg2p2xgr9mbp7llwabwx8jm0kz2mpgh0";
     type = "pom";
   };
 
   apache_6 = fetchMaven {
     version = "6";
-    baseName = "apache";
-    package = "/org/apache";
+    artifactId = "apache";
+    groupId = "org.apache";
     sha512 = "2nvwk7fhiqcbr4vrwl0d3g4wz25vll24ga9kyc89fzq6b9nr6bqfphrm5a73kdih97l5cqlszw8xc847viw2ss1mwabn590f01ykhj0";
     type = "pom";
   };
 
   apache_7 = fetchMaven {
     version = "7";
-    baseName = "apache";
-    package = "/org/apache";
+    artifactId = "apache";
+    groupId = "org.apache";
     sha512 = "2yvwxxifqypmpgxyx10ggj6l52jnl64f9554kyfdph7z56n02bcalj3cr43m6br0as6yc67k5p23l2k3gvdr66c5dfw1l8rwhahk9lr";
     type = "pom";
   };
 
   apache_9 = fetchMaven {
     version = "9";
-    baseName = "apache";
-    package = "/org/apache";
+    artifactId = "apache";
+    groupId = "org.apache";
     sha512 = "0wak95l7zlizrildiji9763zzs10dmhflxaqzg8r9qw2j8a20f2nmns03skvd8na2p12zzvrxa15p952gdfkvrynmvcv2vi1qz822g9";
     type = "pom";
   };
 
   apache_10 = fetchMaven {
     version = "10";
-    baseName = "apache";
-    package = "/org/apache";
+    artifactId = "apache";
+    groupId = "org.apache";
     sha512 = "0kmva6f2q5rq7rk9ljwn3rxa4w2j7sjkxsmvambzqpj61cagdnq4vj9jk0xxx8448kqckdh5w2xkr5lr33sgfl67jy9l5h2s6h13v6m";
     type = "pom";
   };
 
   apache_11 = fetchMaven {
     version = "11";
-    baseName = "apache";
-    package = "/org/apache";
+    artifactId = "apache";
+    groupId = "org.apache";
     sha512 = "09v6sghdaxinrk3pnpnc36x24z62gqn65v25q83mc0q6n49l0xir55xk21qzc8kc6hrdr9khnr7jxkqz207cyv6wky6sy7c3pqg0na0";
     type = "pom";
   };
 
   apache_13 = fetchMaven {
     version = "13";
-    baseName = "apache";
-    package = "/org/apache";
+    artifactId = "apache";
+    groupId = "org.apache";
     sha512 = "0sf86l1457wwp8czg32xhh96l5nlw8v84lbi59nfdxxzcrsn8b1ysgwda3r1ck0d86c5gjmh3qg7kbwlrspwa71w9zn9sby3bszj99v";
     type = "pom";
   };
 
   asmParent_4_0 = fetchMaven {
     version = "4.0";
-    baseName = "asm-parent";
-    package = "/org/ow2/asm";
+    artifactId = "asm-parent";
+    groupId = "org.ow2.asm";
     sha512 = "2vysz9nn1pn1qzd40n7d2njmcpz7qi37pi73k9ajjmmbzwza6h8gc1pvadfqxlnih47gzc1wn3hqrc1sqd3b84kh8nrznwjcp10y0lf";
     type = "pom";
   };
 
   backportUtilConcurrent_3_1 = fetchMaven {
     version = "3.1";
-    baseName = "backport-util-concurrent";
-    package = "/backport-util-concurrent";
+    artifactId = "backport-util-concurrent";
+    groupId = "backport-util-concurrent";
     sha512 = "38i04cb0dggdjjsvl32wpxfbczl1d696nlpzissjlq9ya197rwa0g0704p7vz71xsylvpdjssb0cyx916xsigcyb95k8c84b2hmdhvr";
     type = "pom";
   };
 
   beanshell_2_0_b4 = fetchMaven {
     version = "2.0b4";
-    baseName = "beanshell";
-    package = "/org/beanshell";
+    artifactId = "beanshell";
+    groupId = "org.beanshell";
     sha512 = "2xwgqmfwli40lvlgjx00ki5zm1290jhjvqg7wnq869kxkw9iam239zxb0jz46jcpbgy10qg6sd86cjw5g38njywcz33501f6byd0n3w";
     type = "pom";
   };
 
   codehausParent_4 = fetchMaven {
     version = "4";
-    baseName = "codehaus-parent";
-    package = "/org/codehaus";
+    artifactId = "codehaus-parent";
+    groupId = "org.codehaus";
     sha512 = "11dacs4155xc3rn3crdayg1yp15abw81lbk6qwi7207009rnyk1kxvs56am9pllkybgja53ri0k084k2ppp4dlhxrg6w3zccbafxlgp";
     type = "pom";
   };
 
   commonsParent_11 = fetchMaven {
     version = "11";
-    baseName = "commons-parent";
-    package = "/org/apache/commons";
+    artifactId = "commons-parent";
+    groupId = "org.apache.commons";
     sha512 = "3986i0mnawni27fqf74zfb1n9wvyn502nvslfmbwz5m3rgvhfdb7r1wj7qz8g3wznfvh3wd99h83d94300yvy6cilqy5sj9gfwxk3jv";
     type = "pom";
   };
 
   commonsParent_17 = fetchMaven {
     version = "17";
-    baseName = "commons-parent";
-    package = "/org/apache/commons";
+    artifactId = "commons-parent";
+    groupId = "org.apache.commons";
     sha512 = "31ijvmfj2yybfy0n4qh7ga8192wg75hs5v26vwm98hgvlppxs9irik4qlqzh4iqq0azp0xl8idz6nn6yb9vzsjxax4c3v5wyk3yvyfy";
     type = "pom";
   };
 
   commonsParent_22 = fetchMaven {
     version = "22";
-    baseName = "commons-parent";
-    package = "/org/apache/commons";
+    artifactId = "commons-parent";
+    groupId = "org.apache.commons";
     sha512 = "1sm8g7iwyc5gi4w73yx3p1f1l81kw8d5wzqzqgdgy7k7hfvmsxlm5r9n99h9r0g5y494ad46hjzf8cwjf8am4rv0qzhrmsqkxyd24wk";
     type = "pom";
   };
 
   doxia_1_0_alpha6 = fetchMaven {
     version = "1.0-alpha-6";
-    baseName = "doxia";
-    package = "/org/apache/maven/doxia";
+    artifactId = "doxia";
+    groupId = "org.apache.maven.doxia";
     sha512 = "0ya69g2xfzawf30r2n45n85h2bag0ihd2cbkd0896ykwndx62jyagc594f9pkvb8x9vwgq1dkhfc5lfw1sjcmsxm9dmyzvy2nmykpsy";
     type = "pom";
   };
 
   doxia_1_0_alpha7 = fetchMaven {
     version = "1.0-alpha-7";
-    baseName = "doxia";
-    package = "/org/apache/maven/doxia";
+    artifactId = "doxia";
+    groupId = "org.apache.maven.doxia";
     sha512 = "0fg3l7dyi0c7r1h9rzjn23gv57kc67jpzlcji6yh4nawp3byfbz1rq8wnbj3av3wd29v9h2ff34p06ia9wxbs8q3kz4xy31w7sw7fxg";
     type = "pom";
   };
 
   doxia_1_0_alpha10 = fetchMaven {
     version = "1.0-alpha-10";
-    baseName = "doxia";
-    package = "/org/apache/maven/doxia";
+    artifactId = "doxia";
+    groupId = "org.apache.maven.doxia";
     sha512 = "3by91czdkjn4myc6xwzap37ydmhvic4myr8p2zflnpawrph00jkz9pivd84k2qykvmc5gxzbmklf1inwvkq1f5bsyhh440mlvsfsn1s";
     type = "pom";
   };
 
   doxia_1_0 = fetchMaven {
     version = "1.0";
-    baseName = "doxia";
-    package = "/org/apache/maven/doxia";
+    artifactId = "doxia";
+    groupId = "org.apache.maven.doxia";
     sha512 = "3z04h87dwn5panpr68ajzflw5n4wgi98isl5snz6vrd2vz9744fdqggmn6698wljw9h4pzkvjyrxf9b7w4km6w7kma28akvn951vw99";
     type = "pom";
   };
 
   enforcer_1_3_1 = fetchMaven {
     version = "1.3.1";
-    baseName = "enforcer";
-    package = "/org/apache/maven/enforcer";
+    artifactId = "enforcer";
+    groupId = "org.apache.maven.enforcer";
     sha512 = "1m84z5x2gxlbj9bl2jrfzh26pl7nz1d79sv72clp565z4lr2r1abih2c7aigbd95zik948dqrbh2vzm7vp1iv0d23vk89rx4nmfg0rv";
     type = "pom";
   };
 
   googleParent_1 = fetchMaven {
     version = "1";
-    baseName = "google";
-    package = "/com/google";
+    artifactId = "google";
+    groupId = "com.google";
     sha512 = "22whj7li6dvh4xjcdx1hwlh13ar8c8d9snal6ynnbsd566n9g0kif2fx75q5j4kwmqzb2yj3c3vxdfzg82650gkyvjm2x6cb35vdi30";
     type = "pom";
   };
 
   hamcrestParent_1_3 = fetchMaven {
     version = "1.3";
-    baseName = "hamcrest-parent";
-    package = "/org/hamcrest";
+    artifactId = "hamcrest-parent";
+    groupId = "org.hamcrest";
     sha512 = "1da3ivp9n1h3hl35vhgd7avi4xh8p0802qj7xrk93gbz01s2av28p6ycdwiwp7kja0151wm5jvbgpnkxd8azqwkh7dh83w22k7jpwh3";
     type = "pom";
   };
 
   jclOverSlf4j_1_5_6 = fetchMaven {
     version = "1.5.6";
-    baseName = "jcl-over-slf4j";
-    package = "/org/slf4j";
+    artifactId = "jcl-over-slf4j";
+    groupId = "org.slf4j";
     sha512 = "3ync9p7ws4p8p494jifarwpqblmbkkl6r6rw4bms8fk6ija0ifxn6q5za3pxvp690p5lzw2zkgidr51rqxk8w1ms69pb1nib1r4j578";
     type = "pom";
   };
 
   maven_2_0_1 = fetchMaven {
     version = "2.0.1";
-    baseName = "maven";
-    package = "/org/apache/maven";
+    artifactId = "maven";
+    groupId = "org.apache.maven";
     sha512 = "02n3kpll7w5iqaijawmm4rzr35sbv826c9vp1fzfnrgbvpfw22yrsjv2z416pzk2qyjh3wx7pc5xxxxdchmpzcxm694vsdl67ki2rrz";
     type = "pom";
   };
 
   maven_2_0_6 = fetchMaven {
     version = "2.0.6";
-    baseName = "maven";
-    package = "/org/apache/maven";
+    artifactId = "maven";
+    groupId = "org.apache.maven";
     sha512 = "2k58pvcrdc52zsq6id4vl8a45srxllm2m49namqkzix4356haphk3i06px9jcc2cmkqw7bcpqh5xvvmkds5vhp2b9y9b0i2lcfgx8jw";
     type = "pom";
   };
 
   maven_2_0_8 = fetchMaven {
     version = "2.0.8";
-    baseName = "maven";
-    package = "/org/apache/maven";
+    artifactId = "maven";
+    groupId = "org.apache.maven";
     sha512 = "0mzlba0vbanxvdgfvj3kq6xw211j40b6hk6w0b7lc686m2c26vgxks9iisgm10888lq140i6510813326bs9yb053hqfvnz3m72lkss";
     type = "pom";
   };
 
   maven_2_0_9 = fetchMaven {
     version = "2.0.9";
-    baseName = "maven";
-    package = "/org/apache/maven";
+    artifactId = "maven";
+    groupId = "org.apache.maven";
     sha512 = "2b3wfqxbg0v2lm82a7nzw8wzw708isfrnzriy90bk89dhnj59qzpgvwrjbhs26a32gnpii5ivivh1msq51k1b7j5knmyf0hi1v0blw0";
     type = "pom";
   };
 
   maven_2_2_1 = fetchMaven {
     version = "2.2.1";
-    baseName = "maven";
-    package = "/org/apache/maven";
+    artifactId = "maven";
+    groupId = "org.apache.maven";
     sha512 = "1bdf85rb7b3dvw9gjv376pk908jgvb35hs8p6fp4pzp19pj71150if09lmhw07gvy7sdd92daw7jmijmi1f9w4gxhkbqhvzkb7qx1rs";
     type = "pom";
   };
 
   maven_3_0_3 = fetchMaven {
     version = "3.0.3";
-    baseName = "maven";
-    package = "/org/apache/maven";
+    artifactId = "maven";
+    groupId = "org.apache.maven";
     sha512 = "397qqkh9qd2aj346v4nvxrhaqz6k75l5xnm1xcqd0d4mmxg0p7jlz54yzkshqli2w5df9f7p8pavpkiw5xkl8ipxmp87vfcanvkx4x4";
     type = "pom";
   };
 
   mavenParent_5 = fetchMaven {
     version = "5";
-    baseName = "maven-parent";
-    package = "/org/apache/maven";
+    artifactId = "maven-parent";
+    groupId = "org.apache.maven";
     sha512 = "1810h5ziij9awpf2c6sgqlwd93dd3c54rxbnjxar97idw2zkmwqfxvxi74qjcpbqqam3ypxb893k3958jmhbrzmwhwbkhxyyiqgjsx0";
     type = "pom";
   };
 
   mavenParent_6 = fetchMaven {
     version = "6";
-    baseName = "maven-parent";
-    package = "/org/apache/maven";
+    artifactId = "maven-parent";
+    groupId = "org.apache.maven";
     sha512 = "2z9rkv875yx64mpbf1mgyb3hcxqbhr0ndczwqlmkgd05a679d4vyi92fndaz1bcfwc5bmmxf4s6zrg58swv05j2j9d6vqd2b0x385dq";
     type = "pom";
   };
 
   mavenParent_8 = fetchMaven {
     version = "8";
-    baseName = "maven-parent";
-    package = "/org/apache/maven";
+    artifactId = "maven-parent";
+    groupId = "org.apache.maven";
     sha512 = "315cgnn7mvwq5kyrln3nw85x3893zdd4dg267gk9xkig1mwjpa86l6yyd6qnrwxywcrgn0wmn2l781yvwip9rys4dd9jmbma2qhzapp";
     type = "pom";
   };
 
   mavenParent_11 = fetchMaven {
     version = "11";
-    baseName = "maven-parent";
-    package = "/org/apache/maven";
+    artifactId = "maven-parent";
+    groupId = "org.apache.maven";
     sha512 = "21lz2qb0sl9akirk7fcbj7ldfgnq5nqy90s3hfvmfvz2spk1ppa5yq3702m7z72l3jpbm9vrcm4dvarar314lwjp3477p558gwcpkqf";
     type = "pom";
   };
 
   mavenParent_13 = fetchMaven {
     version = "13";
-    baseName = "maven-parent";
-    package = "/org/apache/maven";
+    artifactId = "maven-parent";
+    groupId = "org.apache.maven";
     sha512 = "0vgjwpmnvcjfif84s5x19ixlxg4413mfma9f10v7klv88b08vwvkpwjnffgzrlqvp5524d8zyswshqkwpdqb0klgppxiipd52d546vw";
     type = "pom";
   };
 
   mavenParent_15 = fetchMaven {
     version = "15";
-    baseName = "maven-parent";
-    package = "/org/apache/maven";
+    artifactId = "maven-parent";
+    groupId = "org.apache.maven";
     sha512 = "390z5v0nygsw075fa5jzl5baxb0bripiiy6arqk550zlg8dw8mcg6cyscwnh3zw4gxyr1qbcy0v8wsj375xc65i2agkzg1qbv5z6xxp";
     type = "pom";
   };
 
   mavenParent_21 = fetchMaven {
     version = "21";
-    baseName = "maven-parent";
-    package = "/org/apache/maven";
+    artifactId = "maven-parent";
+    groupId = "org.apache.maven";
     sha512 = "2dph51qjkmh9sixd12rgxhrvl3w5r7nmr4n3ra4y1lifml6h0md0indj3qw4lxm0db811p3hxf2f9l0gf6w4q5ypjp20lk9ia2xm5s0";
     type = "pom";
   };
 
   mavenParent_22 = fetchMaven {
     version = "22";
-    baseName = "maven-parent";
-    package = "/org/apache/maven";
+    artifactId = "maven-parent";
+    groupId = "org.apache.maven";
     sha512 = "112xv5inpan05vkm12g2lpz37pgga1nm8rar2bqhibvwljg4yv1myx8z99g0nkd3gzbgw5098aagm006w6bnmwsibwd1js8is5d4r88";
     type = "pom";
   };
 
   mavenParent_23 = fetchMaven {
     version = "23";
-    baseName = "maven-parent";
-    package = "/org/apache/maven";
+    artifactId = "maven-parent";
+    groupId = "org.apache.maven";
     sha512 = "3c6ydqi3sf5aq3aj42kxgrjpcf8wpl0rf6hmr6vkas04w0h4dyvjb78ipyxsqzqgzjm6cmdfhxzx8hjb2lwvy3ipf1x39j6cj7dwdy8";
     type = "pom";
   };
 
   mavenPlugins_22 = fetchMaven {
     version = "22";
-    baseName = "maven-plugins";
-    package = "/org/apache/maven/plugins";
+    artifactId = "maven-plugins";
+    groupId = "org.apache.maven.plugins";
     sha512 = "14xy4s69dvqllkspc5b8q1gdbi0wn494ghwcdfcvjzvgczjhhxbr1h698amv3zmg59gb7liz77ws4vmcar8j9lazywcv13cy1myiywa";
     type = "pom";
   };
 
   mavenPlugins_23 = fetchMaven {
     version = "23";
-    baseName = "maven-plugins";
-    package = "/org/apache/maven/plugins";
+    artifactId = "maven-plugins";
+    groupId = "org.apache.maven.plugins";
     sha512 = "1vh7izahb4sskja66hqrygv1r8iwpl97kp65yx6z3fnm761brag89fdcl4jl9hypvm57alf283gvq9rsy5kqnqcdki20k5vw26y1b1a";
     type = "pom";
   };
 
   mavenPlugins_24 = fetchMaven {
     version = "24";
-    baseName = "maven-plugins";
-    package = "/org/apache/maven/plugins";
+    artifactId = "maven-plugins";
+    groupId = "org.apache.maven.plugins";
     sha512 = "07flf37pkkc34466bnzi4rfwdlgvd3ydasm39qzy2hybxv26306zrhipglmgsjvd84z07dscij4n7qdd2jkx9hrkm900hid4xwvxzrs";
     type = "pom";
   };
 
   mavenPluginTools_3_1 = fetchMaven {
     version = "3.1";
-    baseName = "maven-plugin-tools";
-    package = "/org/apache/maven/plugin-tools";
+    artifactId = "maven-plugin-tools";
+    groupId = "org.apache.maven.plugin-tools";
     sha512 = "2410rvvhnpwdg67slwb05v7vnpbvq00d36mbsc77parw4v9n3sr1hqai803g8q54lzv05zzcm7knkjv5ip5wcbvzrh0dr4f5lm904wy";
     type = "pom";
   };
 
   mavenPluginTools_3_2 = fetchMaven {
     version = "3.2";
-    baseName = "maven-plugin-tools";
-    package = "/org/apache/maven/plugin-tools";
+    artifactId = "maven-plugin-tools";
+    groupId = "org.apache.maven.plugin-tools";
     sha512 = "28qhbacsb69rcp86l3lkc3d83267qdwwpl0zm134rxi58wy4y4rd8nz2yzk6yx4x8h0drq776b2qnr4ps1da1ybsvsi2sc655scx3lf";
     type = "pom";
   };
 
   mavenReporting_2_0_1 = fetchMaven {
     version = "2.0.1";
-    baseName = "maven-reporting";
-    package = "/org/apache/maven/reporting";
+    artifactId = "maven-reporting";
+    groupId = "org.apache.maven.reporting";
     sha512 = "3ns0j0w3g3xzvi4y2nbz7yl3w0bq6npvkpy56c2s2m8z0b0007vw97qm3z7b6iicwck69g9001qqqanhzr35x1qbzlqzrx5v271hvfa";
     type = "pom";
   };
 
   mavenReporting_2_0_6 = fetchMaven {
     version = "2.0.6";
-    baseName = "maven-reporting";
-    package = "/org/apache/maven/reporting";
+    artifactId = "maven-reporting";
+    groupId = "org.apache.maven.reporting";
     sha512 = "3bi678sg28yxhlby4d3a6mq9fhg1qnjb57kbkhi7dfx9g0c1p6cxhg8cixjz9wv31lkjpspbpp1fq0z29a93lqrjqczlg8a7i1sg554";
     type = "pom";
   };
 
   mavenReporting_2_0_9 = fetchMaven {
     version = "2.0.9";
-    baseName = "maven-reporting";
-    package = "/org/apache/maven/reporting";
+    artifactId = "maven-reporting";
+    groupId = "org.apache.maven.reporting";
     sha512 = "0cg49pq6rvk7c84xwnpq2p47b7y973sy9qfgzcq06bnrqm6cj26h8k7d9kpp3q3rd2hlw10db4sjfx0crlai27cbbz41i5m22lq21s5";
     type = "pom";
   };
 
   mavenReporting_2_2_1 = fetchMaven {
     version = "2.2.1";
-    baseName = "maven-reporting";
-    package = "/org/apache/maven/reporting";
+    artifactId = "maven-reporting";
+    groupId = "org.apache.maven.reporting";
     sha512 = "02gs0nk2hihvayh7gxn1ncbq7nq1hbpr40whby6c58adk7g6jq3cn84fi8svcv10w915f696drav1cimjpizcyjn00if1iql59dmfda";
     type = "pom";
   };
 
   mavenSharedComponents_7 = fetchMaven {
     version = "7";
-    baseName = "maven-shared-components";
-    package = "/org/apache/maven/shared";
+    artifactId = "maven-shared-components";
+    groupId = "org.apache.maven.shared";
     sha512 = "35zwvraafv86jpyfvfmi76n9bzmahq5z90j9axb3b6d0wfvildz5qb43kw27si2ldwghiwsfh2jikd3gf9ms553pfillf4baab13dp6";
     type = "pom";
   };
 
   mavenSharedComponents_11 = fetchMaven {
     version = "11";
-    baseName = "maven-shared-components";
-    package = "/org/apache/maven/shared";
+    artifactId = "maven-shared-components";
+    groupId = "org.apache.maven.shared";
     sha512 = "3g30bgx3nhw1pwq5nq7ns17vs53cck3zrk6b4sqh56my7vhdv08v0n94l326q9f51sxvnsn11zmpnn8zri8hz2ci1g61ymgi2d0mxyd";
     type = "pom";
   };
 
   mavenSharedComponents_12 = fetchMaven {
     version = "12";
-    baseName = "maven-shared-components";
-    package = "/org/apache/maven/shared";
+    artifactId = "maven-shared-components";
+    groupId = "org.apache.maven.shared";
     sha512 = "1x5q96gigd54qp60i20kvmwi604ga55fc70gkz1nwn5fjmy36rlxldhhdij3kcpnxpwqp4dwxq717ai8rqv3lzjif8pxd06wzmz0q09";
     type = "pom";
   };
 
   mavenSharedComponents_17 = fetchMaven {
     version = "17";
-    baseName = "maven-shared-components";
-    package = "/org/apache/maven/shared";
+    artifactId = "maven-shared-components";
+    groupId = "org.apache.maven.shared";
     sha512 = "3f2pifiapx09h3wv9lglm0mkd9gid268lfz27jhqb4ck2yxna31872db7cj5c9lsg0pl2l3bwgp526whq14zj2qffqxrdq8mn9m0rhy";
     type = "pom";
   };
 
   mavenSharedComponents_18 = fetchMaven {
     version = "18";
-    baseName = "maven-shared-components";
-    package = "/org/apache/maven/shared";
+    artifactId = "maven-shared-components";
+    groupId = "org.apache.maven.shared";
     sha512 = "2qqabrvgs4kb14v28qkfwj16n715mj5mh4m8aw0dybi5igmrvwh1d8jsjggdfbh929m6499w8x5s6aw0gbzmfzr3wjkz54dqxnm49p0";
     type = "pom";
   };
 
   mavenSharedComponents_19 = fetchMaven {
     version = "19";
-    baseName = "maven-shared-components";
-    package = "/org/apache/maven/shared";
+    artifactId = "maven-shared-components";
+    groupId = "org.apache.maven.shared";
     sha512 = "1na6rh2mlwq6yrg7jxxnkcjj4ki0lqcihwiq2cy2ygsd6q0z8fn755frrd1j1jvd5dnh8jxjqp1m5mpwwv13hxhy8lmq95a5pp2a2qh";
     type = "pom";
   };
 
   mojoParent_32 = fetchMaven {
     version = "32";
-    baseName = "mojo-parent";
-    package = "/org/codehaus/mojo";
+    artifactId = "mojo-parent";
+    groupId = "org.codehaus.mojo";
     sha512 = "15pzaqpdcr8c2w2b2ms3qc5d3r0flmzqav6h45nmg1l8nv7529lp6dkilhkwqag1i94vh8dvqnkxm475j9v2hxmz981azrvz7984z8w";
     type = "pom";
   };
 
   ow2_1_3 = fetchMaven {
     version = "1.3";
-    baseName = "ow2";
-    package = "/org/ow2";
+    artifactId = "ow2";
+    groupId = "org.ow2";
     sha512 = "1jqfqqmh19lvrjk45zzzp895jbxb8giw8sn1qdvwhh1yqxr1z5vkv98n4g0ib2l359qmb9fal4d21ba57zmbl0rqxqlggv9c5l87gfs";
     type = "pom";
   };
 
   plexus_1_0_4 = fetchMaven {
     version = "1.0.4";
-    baseName = "plexus";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus";
+    groupId = "org.codehaus.plexus";
     sha512 = "22zsqss9aws73zvgqaz1brnvhk8bqn0flzd644nikprbb9dh1jyv1jig7xaxj942wq1w8h6ybx6b3v1ysfr8kw1z70sb5yrb4zd4kkm";
     type = "pom";
   };
 
   plexus_1_0_8 = fetchMaven {
     version = "1.0.8";
-    baseName = "plexus";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus";
+    groupId = "org.codehaus.plexus";
     sha512 = "1nwv49smddfvqn1fhi8aj993pkzsxa033a9g97z7sc3aia5wzwz86azzyrklgxywc26c3k3mw8vfzv758rv3v7cn0hfmyfzfkrg8vwp";
     type = "pom";
   };
 
   plexus_1_0_11 = fetchMaven {
     version = "1.0.11";
-    baseName = "plexus";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus";
+    groupId = "org.codehaus.plexus";
     sha512 = "20fb1yvg26wg3lih55m8m4i1idiffyg3jlkvazmxqqvnahz2llgd5cfvqcrzg8lkinnypr4ic5glci4lza46k1sfl5nrviyfx0n7kgr";
     type = "pom";
   };
 
   plexus_1_0_12 = fetchMaven {
     version = "1.0.12";
-    baseName = "plexus";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus";
+    groupId = "org.codehaus.plexus";
     sha512 = "2ckzb1z4hgmp2r61a05v3aqapkfnyfs4b7wrf60aiymrz57kliyq3nn50h7bj6ak9hlpyzxpqgqps0chzfpizr8v0abdkjmbplvw2ai";
     type = "pom";
   };
 
   plexus_2_0_2 = fetchMaven {
     version = "2.0.2";
-    baseName = "plexus";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus";
+    groupId = "org.codehaus.plexus";
     sha512 = "095kxnh9238wlnxsbsl7wj3zsp2ijwx8p8bvbmsvj3iacw9fsvddv263j485zfjf4ipvp5dwqc3sc8mqkwbhx1qj7k1x1hj14nl6r8z";
     type = "pom";
   };
 
   plexus_2_0_3 = fetchMaven {
     version = "2.0.3";
-    baseName = "plexus";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus";
+    groupId = "org.codehaus.plexus";
     sha512 = "15adqpm0gz7c0jwjd4yk0k8h4h7vnz15v1fdmzb6rgs6avl1dx84r5l0fqs6b02kw008rg68inii7nl4m5xwqrj807wr8qzrjm02cam";
     type = "pom";
   };
 
   plexus_2_0_6 = fetchMaven {
     version = "2.0.6";
-    baseName = "plexus";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus";
+    groupId = "org.codehaus.plexus";
     sha512 = "07rrw1yldy4c2qvwv3hcf9rdbr0jf57qsnnv2ai9fajwhjyjkgjixm2zlsid41bm2w8hacg9crzy6nfz8yh1sdh5p767niy9jripq2h";
     type = "pom";
   };
 
   plexus_2_0_7 = fetchMaven {
     version = "2.0.7";
-    baseName = "plexus";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus";
+    groupId = "org.codehaus.plexus";
     sha512 = "2ddbjp60y8g7n56hya5qa59f980a8sdj0d1dicv3na3pbc6k4wgdrix78lgg32sp4fzmxl7fyzw9gy3z2vpzf65zkj3c9yh030jcysr";
     type = "pom";
   };
 
   plexus_3_0_1 = fetchMaven {
     version = "3.0.1";
-    baseName = "plexus";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus";
+    groupId = "org.codehaus.plexus";
     sha512 = "3rjh4msw1qjpj0vmc90f89zjkzcyahzh93jrpw25qb2wn0v18jgw65g0ai7ynssdh113kxi816syqcw8vbqwvhlr2b0acrmszy0jnps";
     type = "pom";
   };
 
   plexus_3_1 = fetchMaven {
     version = "3.1";
-    baseName = "plexus";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus";
+    groupId = "org.codehaus.plexus";
     sha512 = "1zyyzy6zvf73bnv8c76x2lmffllqqrgk1k8kpravcrd809acfslip1w7w8kr0rg3sc7554875wsq8fbhq3zdvxwjpzwgz4l5rjr3lmr";
     type = "pom";
   };
 
   plexus_3_2 = fetchMaven {
     version = "3.2";
-    baseName = "plexus";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus";
+    groupId = "org.codehaus.plexus";
     sha512 = "07y1vwz55l9yzfhix5w5fw5xvdj854c1ri1wws6r23xzyp5bqwrrz0x5ln26w05w78vpj1rvrq1mkk192vfr80si3ccr063aschf6ld";
     type = "pom";
   };
 
   plexus_3_3_1 = fetchMaven {
     version = "3.3.1";
-    baseName = "plexus";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus";
+    groupId = "org.codehaus.plexus";
     sha512 = "1q1p0sfzkhdpknaf0ysq7vzd0qip9q86z62nwamfh9gdsp7lh99kh6hmxav2daha462c3jra6clfniyqrbvs07jwjhf4c79rwhnqc2q";
     type = "pom";
   };
 
   plexusCipher_1_4 = fetchMaven {
     version = "1.4";
-    baseName = "plexus-cipher";
-    package = "/org/sonatype/plexus";
+    artifactId = "plexus-cipher";
+    groupId = "org.sonatype.plexus";
     sha512 = "1m4f7n6ch8gbwgvz7h8iab0jkan8ws3qq9776qc10k0kj6i3227kskk5s8pxlq9vrxw498jmjnkiga41fy33khrgvsvls2hrj9vv1g1";
     type = "pom";
   };
 
   plexusCompiler_2_2 = fetchMaven {
     version = "2.2";
-    baseName = "plexus-compiler";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-compiler";
+    groupId = "org.codehaus.plexus";
     sha512 = "26sr1hg214qf65nym85viv1z4nk1bgqahx7n4bq3did49s9ymgz2c08vw7zdlcqws5jndz9n2xlyq285plgv3xx2mxrrsi2r24zmw29";
     type = "pom";
   };
 
   plexusCompilers_2_2 = fetchMaven {
     version = "2.2";
-    baseName = "plexus-compilers";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-compilers";
+    groupId = "org.codehaus.plexus";
     sha512 = "0yvvc8mdz1vd7mpw9h568mhlfxh3qpbz4qpyr5iw7f5ifm46gxsmnfd36ah6mn9hxh6lpra3mi536y5cv1k5mrbr128a1lwyr8p14rg";
     type = "pom";
   };
 
   plexusComponents_1_1_4 = fetchMaven {
     version = "1.1.4";
-    baseName = "plexus-components";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-components";
+    groupId = "org.codehaus.plexus";
     sha512 = "02kdl9z8nz26h4qf9mrdm8s1y2gy1f57n825yy0y3qifavlv51k2yxza7mjsdl1dwrq84c4qlj79iqlisnhrppfy0ncbbblnbir1yln";
     type = "pom";
   };
 
   plexusComponents_1_1_6 = fetchMaven {
     version = "1.1.6";
-    baseName = "plexus-components";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-components";
+    groupId = "org.codehaus.plexus";
     sha512 = "1m6f5xzp6mk1n0svznqc8l5x3klr9kk75223ms31q65llx765dxvrsmkjlzgshb0ipb9nfxwk9hs5fvf5dgh0xlzrnc1w2pnqdi8jnh";
     type = "pom";
   };
 
   plexusComponents_1_1_7 = fetchMaven {
     version = "1.1.7";
-    baseName = "plexus-components";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-components";
+    groupId = "org.codehaus.plexus";
     sha512 = "2mh1qfbaf6f6nv0nj0g8skgv82jv1l2zg7iivd2jjrzrwnpkc58ajfl1wmylwpz035d9dd713h9szkwy2hdd6pardbc4ja2w4qv5s91";
     type = "pom";
   };
 
   plexusComponents_1_1_14 = fetchMaven {
     version = "1.1.14";
-    baseName = "plexus-components";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-components";
+    groupId = "org.codehaus.plexus";
     sha512 = "2gf578c23wz38cnjnp8w80b6hzmfnzrv6is1yf52qrfcijk84fnj4k8wrqg0jms9yz6l5rkkv40zm2j7kkbxgn862mnh4i4qxcb604g";
     type = "pom";
   };
 
   plexusComponents_1_1_15 = fetchMaven {
     version = "1.1.15";
-    baseName = "plexus-components";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-components";
+    groupId = "org.codehaus.plexus";
     sha512 = "0lfzdq1wlsnkiapzjs8cqi2kzkaw9lfjhdhmf1pz2x83m5njfx2y59v14wgcs2k4cig8kjr45v4qnmd7mp03k8gginzflc1qi1y7yv6";
     type = "pom";
   };
 
   plexusComponents_1_1_19 = fetchMaven {
     version = "1.1.19";
-    baseName = "plexus-components";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-components";
+    groupId = "org.codehaus.plexus";
     sha512 = "01mllmbwfrimvsgmc3wfxp60nm999xa4abp0ywpxdrvbb88dwr4g7sg3mlz22xhc8pky72mif882ppgrdxj01lx3lmm84p3g5f51bii";
     type = "pom";
   };
 
   plexusComponents_1_3_1 = fetchMaven {
     version = "1.3.1";
-    baseName = "plexus-components";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-components";
+    groupId = "org.codehaus.plexus";
     sha512 = "16bnfja035zb508f340y64v4vk7pkldn8bvnxvbk0grk8a76rirsn4dl60x3hgmasgkb0y75gr9qp4y72m079klhgg0mbvcfvslkxqb";
     type = "pom";
   };
 
   plexusContainers_1_0_3 = fetchMaven {
     version = "1.0.3";
-    baseName = "plexus-containers";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-containers";
+    groupId = "org.codehaus.plexus";
     sha512 = "39sw2lxlrgbj1zlf67qz14j53sxd45p1qmna5cfizqikrwiqrnb6xwdxr2rsp3h2kadwwpz6id2ls6x3hr93znkad404rg4lg11v9nj";
     type = "pom";
   };
 
   plexusContainers_1_5_5 = fetchMaven {
     version = "1.5.5";
-    baseName = "plexus-containers";
-    package = "/org/codehaus/plexus";
+    artifactId = "plexus-containers";
+    groupId = "org.codehaus.plexus";
     sha512 = "1dzg3ry73scisq02p1c96rn04rvdpyf9v6cbvvmy6hvcaw11y8mmjwjnlayljhr9za5hhq5bwv2vssmp683v3qjr5750f9aa62jxw0w";
     type = "pom";
   };
 
   plexusSecDispatcher_1_3 = fetchMaven {
     version = "1.3";
-    baseName = "plexus-sec-dispatcher";
-    package = "/org/sonatype/plexus";
+    artifactId = "plexus-sec-dispatcher";
+    groupId = "org.sonatype.plexus";
     sha512 = "09blh68dwrh3zix33cbfbvmxbbm7ck80pwp9x4v1ilf11y6hgm065jx39viqm0zlr86kwngrlm4skrgjw5v67aj2q7d7kd5jgj5s0qc";
     type = "pom";
   };
 
   sisuInject_2_1_1 = fetchMaven {
     version = "2.1.1";
-    baseName = "sisu-inject";
-    package = "/org/sonatype/sisu";
+    artifactId = "sisu-inject";
+    groupId = "org.sonatype.sisu";
     sha512 = "0720p7ai7l1wqs2rfcgpvgd1rc3p2bdpp51a57jmqbgh9msr54iy0c6n0ipybd9lrl88iz4l8cc1s73qj5appf8r481bbwgv4wxi19v";
     type = "pom";
   };
 
   sisuInjectGuiceBean_2_1_1 = fetchMaven {
     version = "2.1.1";
-    baseName = "guice-bean";
-    package = "/org/sonatype/sisu/inject";
+    artifactId = "guice-bean";
+    groupId = "org.sonatype.sisu.inject";
     sha512 = "2arva9197d03whnavfspz8wm7fw8iqrhacp10984lxwig221m34p5bb9vmhn8bbswf7d8whzf9q5lsq9mxbmd2c90kc1m7n7qja6qq5";
     type = "pom";
   };
 
   sisuInjectGuicePlexus_2_1_1 = fetchMaven {
     version = "2.1.1";
-    baseName = "guice-plexus";
-    package = "/org/sonatype/sisu/inject";
+    artifactId = "guice-plexus";
+    groupId = "org.sonatype.sisu.inject";
     sha512 = "0gspz9n6vbnlbx33xynm4sg0wxlr89i8490gcl0y0qw6mvjjqfwv1dqgncm9xp41mb21i00gxq0ml6d4wfr0sdayk9m736b826lrvq4";
     type = "pom";
   };
 
   sisuParent_2_1_1 = fetchMaven {
     version = "2.1.1";
-    baseName = "sisu-parent";
-    package = "/org/sonatype/sisu";
+    artifactId = "sisu-parent";
+    groupId = "org.sonatype.sisu";
     sha512 = "2z006ib6azrxf5s02ixv5plc1db0rglnv2m8k4il0s144v63ay98wjxawcc1chld64iribhhby6wnlv2fxvv8sl9mr03qb2q2isflgc";
     type = "pom";
   };
 
   slf4jApi_1_5_6 = fetchMaven {
     version = "1.5.6";
-    baseName = "slf4j-api";
-    package = "/org/slf4j";
+    artifactId = "slf4j-api";
+    groupId = "org.slf4j";
     sha512 = "3ahxd5zfxpwrp97yq74xfhrh02a7hnmcdxk5rwjn4v5hcms9b98iizsgd2ssjxa1vy784jh45f6k8qby1c1bdcwk9y18mkcw79zhl2n";
     type = "pom";
   };
 
   slf4jJdk14_1_5_6 = fetchMaven {
     version = "1.5.6";
-    baseName = "slf4j-jdk14";
-    package = "/org/slf4j";
+    artifactId = "slf4j-jdk14";
+    groupId = "org.slf4j";
     sha512 = "11yiy09mlm5dq2ir05n97nka3sqwn48k47x4d2vqmgjsk3vz255m8ilxvq5hjjzygyw0prcrp4zbwkphb5his00pw8f4hczd1w16nvr";
     type = "pom";
   };
 
   slf4jParent_1_5_6 = fetchMaven {
     version = "1.5.6";
-    baseName = "slf4j-parent";
-    package = "/org/slf4j";
+    artifactId = "slf4j-parent";
+    groupId = "org.slf4j";
     sha512 = "036cizr5vh557l65jiv706iiy1q1s3lkr1xqa1hd5yspawd111d5iq8q3qdsw07c3rmxq7n9sflgcj08bhs149ni119fdr7hn9cx0nl";
     type = "pom";
   };
 
   sonatypeForgeParent_3 = fetchMaven {
     version = "3";
-    baseName = "forge-parent";
-    package = "/org/sonatype/forge";
+    artifactId = "forge-parent";
+    groupId = "org.sonatype.forge";
     sha512 = "20x89zl6k0wgd1gb6ysxm6bmgqxwyz3d7zyjn8bwzkz93k7lxnxm0k7skvha283q9ay4cd2vkjisi5avl1f3wvz89rrwg136gmdlksv";
     type = "pom";
   };
 
   sonatypeForgeParent_4 = fetchMaven {
     version = "4";
-    baseName = "forge-parent";
-    package = "/org/sonatype/forge";
+    artifactId = "forge-parent";
+    groupId = "org.sonatype.forge";
     sha512 = "0j13rfddklh25sdwppxvdn97y3l8vy809g2w5zpflh74v0rh0q04ylm3j2nj5hf3ypmgx3lhdp161jbv3l47gl7gh60fk3rnq17kfbq";
     type = "pom";
   };
 
   sonatypeForgeParent_5 = fetchMaven {
     version = "5";
-    baseName = "forge-parent";
-    package = "/org/sonatype/forge";
+    artifactId = "forge-parent";
+    groupId = "org.sonatype.forge";
     sha512 = "1l3nll0i5cpf2rh5f4gqriwy2737n9sccr605nx1swn1qafbxbvvs4jl7argdzz0mkzrr8sir7vnksm9a273vrdica9l35nxivm6vrx";
     type = "pom";
   };
 
   sonatypeForgeParent_7 = fetchMaven {
     version = "7";
-    baseName = "forge-parent";
-    package = "/org/sonatype/forge";
+    artifactId = "forge-parent";
+    groupId = "org.sonatype.forge";
     sha512 = "3l6c336cm6wnrw2l7lr0wg83w1304bggvw4qydh5bqbbyfpdgwqa3pbfkq4x760k3wqwarnlpf31fz2dp6abrynjl4rr1lv68j1hhyn";
     type = "pom";
   };
 
   sonatypeForgeParent_10 = fetchMaven {
     version = "10";
-    baseName = "forge-parent";
-    package = "/org/sonatype/forge";
+    artifactId = "forge-parent";
+    groupId = "org.sonatype.forge";
     sha512 = "3fpnvrxfkxpxqdsn6g7w1zyql4v0z9iqbjprhh4c6rldrbvq4h3yh7dl5sw4h7av516zhmb3bkc9ycfdr5gs34sfb6f6x5hk7qc374a";
     type = "pom";
   };
 
   sonatypeParent_7 = fetchMaven {
     version = "7";
-    baseName = "oss-parent";
-    package = "/org/sonatype/oss";
+    artifactId = "oss-parent";
+    groupId = "org.sonatype.oss";
     sha512 = "3xk0q7y2kdarr3l42dqjzq9qz1r840abqw9zhvl4gpc8jw5xcbqd781fp8z41i3hrkyaf740f2kppji9l77ci7f759d5s9yg4grbc33";
     type = "pom";
   };
 
   sonatypeSpiceParent_10 = fetchMaven {
     version = "10";
-    baseName = "spice-parent";
-    package = "/org/sonatype/spice";
+    artifactId = "spice-parent";
+    groupId = "org.sonatype.spice";
     sha512 = "0gg2cxqvfmg6jk7qi2f4hcgskpd1ysnf1d5vay8dza40wfbk2vy7qvhgjhg55dpbjkadmsj483hg81qdzwqbxmagd2xr9j9062hbja8";
     type = "pom";
   };
 
   sonatypeSpiceParent_12 = fetchMaven {
     version = "12";
-    baseName = "spice-parent";
-    package = "/org/sonatype/spice";
+    artifactId = "spice-parent";
+    groupId = "org.sonatype.spice";
     sha512 = "3bx63k5frr99ma5wcjlqlym7qr6x1m031hns35rpvz039s9cxcn8r3f7slwqaa7s19i3j46kwgxirnhs4ylcddql4rsibaqjwy9lh0d";
     type = "pom";
   };
 
   sonatypeSpiceParent_16 = fetchMaven {
     version = "16";
-    baseName = "spice-parent";
-    package = "/org/sonatype/spice";
+    artifactId = "spice-parent";
+    groupId = "org.sonatype.spice";
     sha512 = "0awfi8vf4xc5c9510sas7xqlik4g8ljivay372cksvlcwlgyrgliikak0xxbxj72df5b9jzc9fzvjxd9rlllnnlnm4zllw5p2hakb0g";
     type = "pom";
   };
 
   sonatypeSpiceParent_17 = fetchMaven {
     version = "17";
-    baseName = "spice-parent";
-    package = "/org/sonatype/spice";
+    artifactId = "spice-parent";
+    groupId = "org.sonatype.spice";
     sha512 = "1jqqp5xylm9bjz33wab7mj49xqczvkhpp4aysrcngszxmil61kanpjmn5ks5r0hq4waj0bqnr91p2p9a7ylqnqjs6ib1x9psl5c9cyw";
     type = "pom";
   };
 
   surefire_2_12_4 = fetchMaven {
     version = "2.12.4";
-    baseName = "surefire";
-    package = "/org/apache/maven/surefire";
+    artifactId = "surefire";
+    groupId = "org.apache.maven.surefire";
     sha512 = "1zyppjqqwpzcp16g7v49r9fsgdvrny325r583kpis5497ic0qbcczxn53x7s1hnmhgcs33dr0k3alrwl7m574lm2qdgj0s8x18pl6gb";
     type = "pom";
   };
 
   surefire_2_17 = fetchMaven {
     version = "2.17";
-    baseName = "surefire";
-    package = "/org/apache/maven/surefire";
+    artifactId = "surefire";
+    groupId = "org.apache.maven.surefire";
     sha512 = "3yraw37xwayyrvwa62y6li3wbzrha08j389psz16j1dawxmg78zlm2x1jmgz3nzdb60n9kk143606bgs3vrf7ri9d5pwkg9lvw7hk92";
     type = "pom";
   };
 
   surefireProviders_2_12_4 = fetchMaven {
     version = "2.12.4";
-    baseName = "surefire-providers";
-    package = "/org/apache/maven/surefire";
+    artifactId = "surefire-providers";
+    groupId = "org.apache.maven.surefire";
     sha512 = "08di6wgiihz9svrdpkdvhlipdp83byd1s844fnjqfk3z0g5a72lpq718zy27rk41jma3hclmr4pv0g5dvbhf3v8hy92iby8w5rcxv5x";
     type = "pom";
   };
 
   xbean_3_4 = fetchMaven {
     version = "3.4";
-    baseName = "xbean";
-    package = "/org/apache/xbean";
+    artifactId = "xbean";
+    groupId = "org.apache.xbean";
     sha512 = "2qdd1srj7ahskmxp1cb3gkxgdmy0ms4m5mi43mvfrl085fp58f67ip2y0w4r0xfwzds12727yili6hciiwix9i6hx7wasi5sa9djcp6";
     type = "pom";
   };
diff --git a/pkgs/development/java-modules/sisu/guice.nix b/pkgs/development/java-modules/sisu/guice.nix
index 9fb70fad4466..51a004ed5451 100644
--- a/pkgs/development/java-modules/sisu/guice.nix
+++ b/pkgs/development/java-modules/sisu/guice.nix
@@ -3,8 +3,8 @@
 rec {
   sisuGuice_2_9_4 = map (obj: fetchMaven {
     version = "2.9.4";
-    baseName = "sisu-guice";
-    package = "/org/sonatype/sisu";
+    artifactId = "sisu-guice";
+    groupId = "org.sonatype.sisu";
     suffix = "-no_aop";
     sha512 = obj.sha512;
     type = obj.type;
diff --git a/pkgs/development/java-modules/sisu/inject-bean.nix b/pkgs/development/java-modules/sisu/inject-bean.nix
index fba7130cfbdc..bca16ccd114c 100644
--- a/pkgs/development/java-modules/sisu/inject-bean.nix
+++ b/pkgs/development/java-modules/sisu/inject-bean.nix
@@ -3,8 +3,8 @@
 rec {
   sisuInjectBean_2_1_1 = map (obj: fetchMaven {
     version = "2.1.1";
-    baseName = "sisu-inject-bean";
-    package = "/org/sonatype/sisu";
+    artifactId = "sisu-inject-bean";
+    groupId = "org.sonatype.sisu";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/sisu/inject-plexus.nix b/pkgs/development/java-modules/sisu/inject-plexus.nix
index 73335ec951e5..0a181dc1a1ec 100644
--- a/pkgs/development/java-modules/sisu/inject-plexus.nix
+++ b/pkgs/development/java-modules/sisu/inject-plexus.nix
@@ -3,8 +3,8 @@
 rec {
   sisuInjectPlexus_2_1_1 = map (obj: fetchMaven {
     version = "2.1.1";
-    baseName = "sisu-inject-plexus";
-    package = "/org/sonatype/sisu";
+    artifactId = "sisu-inject-plexus";
+    groupId = "org.sonatype.sisu";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/xerces/impl.nix b/pkgs/development/java-modules/xerces/impl.nix
index 7b04e21f50ee..11295b3128fd 100644
--- a/pkgs/development/java-modules/xerces/impl.nix
+++ b/pkgs/development/java-modules/xerces/impl.nix
@@ -3,8 +3,8 @@
 rec {
   xercesImpl_2_8_0 = map (obj: fetchMaven {
     version = "2.8.0";
-    baseName = "xercesImpl";
-    package = "/xerces";
+    artifactId = "xercesImpl";
+    groupId = "xerces";
     sha512 = obj.sha512;
     type = obj.type;
   }) [
diff --git a/pkgs/development/java-modules/xml-apis/default.nix b/pkgs/development/java-modules/xml-apis/default.nix
index 44044a35a57f..a96e3670b401 100644
--- a/pkgs/development/java-modules/xml-apis/default.nix
+++ b/pkgs/development/java-modules/xml-apis/default.nix
@@ -3,8 +3,8 @@
 rec {
   xmlApis_1_3_03 = map (obj: fetchMaven {
     version = "1.3.03";
-    baseName = "xml-apis";
-    package = "/xml-apis";
+    artifactId = "xml-apis";
+    groupId = "xml-apis";
     sha512 = obj.sha512;
     type = obj.type;
   }) [