at master 895 B view raw
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 import java.util.logging.Logger; 11 import java.util.logging.Level; 12 13 class Hello { 14 static Logger logger = Logger.getLogger(Hello.class.getName()); 15 16 public static void main(String[] args) { 17 logger.log(Level.INFO, "Hello, world!"); 18 } 19 } 20 ''; 21in 22pkgs.stdenv.mkDerivation { 23 pname = "hello"; 24 version = "1.0.0"; 25 26 src = source; 27 28 buildPhase = '' 29 runHook preBuild 30 ${jdk}/bin/javac src/Hello.java 31 runHook postBuild 32 ''; 33 installPhase = '' 34 runHook preInstall 35 36 mkdir -p $out/lib 37 cp src/Hello.class $out/lib 38 39 mkdir -p $out/bin 40 cat >$out/bin/hello <<EOF; 41 #!/usr/bin/env sh 42 ${jre}/bin/java -cp $out/lib Hello 43 EOF 44 chmod a+x $out/bin/hello 45 46 runHook postInstall 47 ''; 48}