summary refs log tree commit diff
path: root/gnu/packages/java.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/java.scm')
-rw-r--r--gnu/packages/java.scm23
1 files changed, 23 insertions, 0 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index cfd8f81592..a810a53585 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -10017,3 +10017,26 @@ adds Plexus support to the Sisu-Inject container.")
 @code{IExpressionEvaluator}, @code{IScriptEvaluator}, @code{IClassBodyEvaluator}
 and @code{ISimpleCompiler} interfaces.")
     (license license:bsd-3)))
+
+(define-public java-janino
+  (package
+    (inherit java-commons-compiler)
+    (name "java-janino")
+    (arguments
+     `(#:jar-name "janino.jar"
+       #:source-dir "src/main/java"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'chdir
+           (lambda _
+             (chdir "janino"))))))
+    (inputs
+     `(("java-commons-compiler" ,java-commons-compiler)))
+    (native-inputs
+     `(("java-junit" ,java-junit)
+       ("java-hamcrest-core" ,java-hamcrest-core)))
+    (description "Janino is a Java compiler.  Janino can compile a set of
+source files to a set of class files like @code{javac}, but also compile a
+Java expression, block, class body or source file in memory, load the bytecode
+and execute it directly in the same JVM.  @code{janino} can also be used for
+static code analysis or code manipulation.")))