sdrangel: fix build on x86_64-darwin
[NixPkgs.git] / pkgs / build-support / release / maven-build.nix
blobf618032724c9a0d7d67772e7e9057bbbd0efa6e1
1 { stdenv
2 , lib
3 , name
4 , src
5 , doTest ? true
6 , doTestCompile ? true
7 , doJavadoc ? false
8 , doCheckstyle ? false
9 , doRelease ? false
10 , includeTestClasses ? true
11 , extraMvnFlags ? ""
12 , ...
13 } @ args :
15 let
16   mvnFlags = lib.escapeShellArgs [
17     "-Dmaven.repo.local=$M2_REPO"
18     (lib.optionalString (!doTest) "-Dmaven.test.skip.exec=true")
19     "${extraMvnFlags}"
20   ];
23 stdenv.mkDerivation ( {
24   inherit name src;
25   phases = "setupPhase unpackPhase patchPhase mvnCompile ${lib.optionalString doTestCompile "mvnTestCompile mvnTestJar"} ${lib.optionalString doTest "mvnTest"} ${lib.optionalString doJavadoc "mvnJavadoc"} ${lib.optionalString doCheckstyle "mvnCheckstyle"} mvnJar mvnAssembly mvnRelease finalPhase";
27   setupPhase = ''
28     runHook preSetupPhase
30     mkdir -p $out/nix-support
31     export LANG="en_US.UTF-8"
32     export LOCALE_ARCHIVE=$glibcLocales/lib/locale/locale-archive
33     export M2_REPO=$TMPDIR/repository
35     runHook postSetupPhase
36   '';
38   mvnCompile = ''
39     mvn compile ${mvnFlags}
40   '';
42   mvnTestCompile = ''
43     mvn test-compile ${mvnFlags}
44   '';
46   mvnTestJar = ''
47     mvn jar:test-jar ${mvnFlags}
48   '';
50   mvnTest = ''
51     mvn test ${mvnFlags}
53     if [ -d target/site/cobertura ] ; then
54       echo "report coverage $out/site/cobertura" >> $out/nix-support/hydra-build-products
55     fi
57     if [ -d target/surefire-reports ] ; then
58       mvn surefire-report:report-only
59       echo "report coverage $out/site/surefire-report.html" >> $out/nix-support/hydra-build-products
60     fi
61   '';
63   mvnJavadoc = ''
64     mvn javadoc:javadoc ${mvnFlags}
65     echo "report javadoc $out/site/apidocs" >> $out/nix-support/hydra-build-products
66   '';
68   mvnCheckstyle = ''
69     mvn checkstyle:checkstyle ${mvnFlags}
70     echo "report checkstyle $out/site/checkstyle.html" >> $out/nix-support/hydra-build-products
71   '';
73   mvnJar = ''
74     mvn jar:jar ${mvnFlags}
75   '';
77   mvnAssembly = ''
78     mvn assembly:assembly -Dmaven.test.skip=true ${mvnFlags}
79   '';
81   mvnRelease = ''
82     mkdir -p $out/release
84     zip=$(ls target/*.zip| head -1)
85     releaseName=$(basename $zip .zip)
86     releaseName="$releaseName-r${toString src.rev or "0"}"
87     cp $zip $out/release/$releaseName.zip
89     echo "$releaseName" > $out/nix-support/hydra-release-name
91     ${lib.optionalString doRelease ''
92     echo "file zip $out/release/$releaseName.zip" >> $out/nix-support/hydra-build-products
93     ''}
94   '';
96   finalPhase = ''
97     if [ -d target/site ] ; then
98       cp -R target/site $out/
99       echo "report site $out/site" >> $out/nix-support/hydra-build-products
100     fi
101   '';
102 } // args