1{
2 jdk,
3 jre,
4 pkgs,
5}:
6
7# 'Hello world' Java application derivation for use in tests
8let
9 source = pkgs.writeTextDir "src/Hello.java" ''
10 class Hello {
11 public static void main(String[] args) {
12 System.out.println("Hello, world!");
13 }
14 }
15 '';
16in
17pkgs.stdenv.mkDerivation {
18 pname = "hello";
19 version = "1.0.0";
20
21 src = source;
22
23 buildPhase = ''
24 runHook preBuild
25 ${jdk}/bin/javac src/Hello.java
26 runHook postBuild
27 '';
28 installPhase = ''
29 runHook preInstall
30
31 mkdir -p $out/lib
32 cp src/Hello.class $out/lib
33
34 mkdir -p $out/bin
35 cat >$out/bin/hello <<EOF;
36 #!/usr/bin/env sh
37 ${jre}/bin/java -cp $out/lib Hello
38 EOF
39 chmod a+x $out/bin/hello
40
41 runHook postInstall
42 '';
43}