gnu: Add java-javaparser.
* gnu/packages/java.scm (java-javaparser): New variable.master
parent
7896630fdc
commit
491ed3205b
|
@ -13444,3 +13444,98 @@ in Java, usable from Groovy, Kotlin, Scala, etc.")
|
||||||
used in JVM-based languages. They serve as an additional documentation and
|
used in JVM-based languages. They serve as an additional documentation and
|
||||||
can be interpreted by IDEs and static analysis tools to improve code analysis.")
|
can be interpreted by IDEs and static analysis tools to improve code analysis.")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public java-javaparser
|
||||||
|
(package
|
||||||
|
(name "java-javaparser")
|
||||||
|
(version "3.16.1")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/javaparser/javaparser")
|
||||||
|
(commit (string-append "javaparser-parent-" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1a4jk12ffa31fa0y8vda0739vpfj1206p0nha842b7bixbvwamv9"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
'(begin
|
||||||
|
(for-each delete-file
|
||||||
|
(find-files "." "\\.jar$"))
|
||||||
|
#t))))
|
||||||
|
(build-system ant-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #f; tests require jbehave and junit5
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'build 'fill-template
|
||||||
|
(lambda _
|
||||||
|
(with-directory-excursion "javaparser-core/src/main"
|
||||||
|
(copy-file "java-templates/com/github/javaparser/JavaParserBuild.java"
|
||||||
|
"java/com/github/javaparser/JavaParserBuild.java")
|
||||||
|
(substitute* "java/com/github/javaparser/JavaParserBuild.java"
|
||||||
|
(("\\$\\{project.version\\}") ,version)
|
||||||
|
(("\\$\\{project.name\\}") "javaparser")
|
||||||
|
(("\\$\\{project.build.finalName\\}") "javaparser")
|
||||||
|
(("\\$\\{maven.version\\}") "fake")
|
||||||
|
(("\\$\\{maven.build.version\\}") "fake")
|
||||||
|
(("\\$\\{build.timestamp\\}") "0")
|
||||||
|
(("\\$\\{java.vendor\\}") "Guix")
|
||||||
|
(("\\$\\{java.vendor.url\\}") "https://gnu.org/software/guix")
|
||||||
|
(("\\$\\{java.version\\}") "1.8")
|
||||||
|
(("\\$\\{os.arch\\}") "any")
|
||||||
|
(("\\$\\{os.name\\}") "GuixSD")
|
||||||
|
(("\\$\\{os.version\\}") "not available")))
|
||||||
|
#t))
|
||||||
|
(add-before 'build 'generate-javacc
|
||||||
|
(lambda _
|
||||||
|
(with-directory-excursion "javaparser-core/src/main/java"
|
||||||
|
(invoke "java" "javacc" "../javacc/java.jj"))
|
||||||
|
#t))
|
||||||
|
(add-before 'build 'copy-javacc-support
|
||||||
|
(lambda _
|
||||||
|
(with-directory-excursion "javaparser-core/src/main"
|
||||||
|
(copy-recursively "javacc-support" "java"))
|
||||||
|
#t))
|
||||||
|
(replace 'build
|
||||||
|
(lambda _
|
||||||
|
(define (build name)
|
||||||
|
(format #t "Building ~a~%" name)
|
||||||
|
(delete-file-recursively "build/classes")
|
||||||
|
(mkdir-p "build/classes")
|
||||||
|
(apply invoke "javac"
|
||||||
|
"-cp" (string-append (getenv "CLASSPATH") ":"
|
||||||
|
(string-join (find-files "build/jar" ".")
|
||||||
|
":"))
|
||||||
|
"-d" "build/classes"
|
||||||
|
(find-files (string-append name "/src/main/java")
|
||||||
|
".*.java"))
|
||||||
|
(invoke "jar" "-cf" (string-append "build/jar/" name ".jar")
|
||||||
|
"-C" "build/classes" "."))
|
||||||
|
(mkdir-p "build/classes")
|
||||||
|
(mkdir-p "build/test-classes")
|
||||||
|
(mkdir-p "build/jar")
|
||||||
|
(build "javaparser-core")
|
||||||
|
(build "javaparser-core-serialization")
|
||||||
|
(build "javaparser-core-generators")
|
||||||
|
(build "javaparser-core-metamodel-generator")
|
||||||
|
(build "javaparser-symbol-solver-core")
|
||||||
|
#t))
|
||||||
|
(replace 'install
|
||||||
|
(install-jars "build/jar")))))
|
||||||
|
(inputs
|
||||||
|
`(("java-guava" ,java-guava)
|
||||||
|
("java-jboss-javassist" ,java-jboss-javassist)
|
||||||
|
("java-jsonp-api" ,java-jsonp-api)))
|
||||||
|
(native-inputs
|
||||||
|
`(("javacc" ,javacc)))
|
||||||
|
(home-page "http://javaparser.org/")
|
||||||
|
(synopsis "Parser for Java")
|
||||||
|
(description
|
||||||
|
"This project contains a set of libraries implementing a Java 1.0 - Java
|
||||||
|
11 Parser with advanced analysis functionalities.")
|
||||||
|
(license (list
|
||||||
|
;; either lgpl or asl
|
||||||
|
license:lgpl3+
|
||||||
|
license:asl2.0))))
|
||||||
|
|
Reference in New Issue