diff options
| author | Julien Lepiller <julien@lepiller.eu> | 2020-06-27 23:45:57 +0200 |
|---|---|---|
| committer | Julien Lepiller <julien@lepiller.eu> | 2020-07-17 04:21:10 +0200 |
| commit | e1ee5a75f3017315bb82f38b068bd4c003464b64 (patch) | |
| tree | 311e24672b25b16bcb9bb096ed90d9ec4f2fa89d /gnu | |
| parent | 586db0f9c52adc64ffce89098bf5cdb07580574c (diff) | |
gnu: Add java-surefire-junit4.
* gnu/packages/maven.scm (java-surefire-junit4): New variable.
Diffstat (limited to 'gnu')
| -rw-r--r-- | gnu/packages/maven.scm | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 87a3385b094..cbeda43b72f 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm | |||
| @@ -3403,3 +3403,95 @@ POM in Apache Maven Surefire project."))) | |||
| 3403 | (synopsis "Shared JUnit4 provider code for Maven SureFire") | 3403 | (synopsis "Shared JUnit4 provider code for Maven SureFire") |
| 3404 | (description "This package contains shared code for all JUnit providers, | 3404 | (description "This package contains shared code for all JUnit providers, |
| 3405 | starting from JUnit 4."))) | 3405 | starting from JUnit 4."))) |
| 3406 | |||
| 3407 | (define-public java-surefire-junit4 | ||
| 3408 | (package | ||
| 3409 | (inherit java-surefire-logger-api) | ||
| 3410 | (name "java-surefire-junit4") | ||
| 3411 | (arguments | ||
| 3412 | `(;#:tests? #f | ||
| 3413 | #:jar-name "java-surefire-junit4.jar" | ||
| 3414 | #:source-dir "surefire-providers/surefire-junit4/src/main/java" | ||
| 3415 | #:test-dir "surefire-providers/surefire-junit4/src/test" | ||
| 3416 | #:modules ((guix build ant-build-system) | ||
| 3417 | (guix build utils) | ||
| 3418 | (guix build java-utils) | ||
| 3419 | (sxml simple)) | ||
| 3420 | #:phases | ||
| 3421 | (modify-phases %standard-phases | ||
| 3422 | (add-before 'install 'regenerate-own-pom | ||
| 3423 | (lambda _ | ||
| 3424 | ;; Surefire struggles resolving artifacts because of this pom | ||
| 3425 | ;; file, resulting in a NullPointerException when collecting | ||
| 3426 | ;; Artifacts (and a "Failure detected." message from | ||
| 3427 | ;; DefaultArtifactResolver). Replace the pom file with a much | ||
| 3428 | ;; simpler one. Everything is shaded anyway (as used to be the | ||
| 3429 | ;; case in 2.22), so there will not be missing dependencies. | ||
| 3430 | (with-output-to-file "surefire-providers/surefire-junit4/pom.xml" | ||
| 3431 | (lambda _ | ||
| 3432 | (sxml->xml | ||
| 3433 | `((project | ||
| 3434 | (modelVersion "4.0.0") | ||
| 3435 | (name "Surefire JUnit4") | ||
| 3436 | (groupId "org.apache.maven.surefire") | ||
| 3437 | (artifactId "surefire-junit4") | ||
| 3438 | (version ,,(package-version java-surefire-common-java5))))))) | ||
| 3439 | #t)) | ||
| 3440 | (add-before 'build 'copy-resources | ||
| 3441 | (lambda _ | ||
| 3442 | (mkdir-p "build/classes") | ||
| 3443 | (copy-recursively "surefire-providers/surefire-junit4/src/main/resources" | ||
| 3444 | "build/classes") | ||
| 3445 | #t)) | ||
| 3446 | (add-before 'build 'prepare-shade | ||
| 3447 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 3448 | (mkdir-p "build/classes") | ||
| 3449 | (with-directory-excursion "build/classes" | ||
| 3450 | (for-each | ||
| 3451 | (lambda (input) | ||
| 3452 | (for-each | ||
| 3453 | (lambda (jar-file) | ||
| 3454 | (invoke "jar" "xf" jar-file) | ||
| 3455 | (delete-file-recursively "META-INF")) | ||
| 3456 | (find-files (assoc-ref inputs input) ".*.jar$"))) | ||
| 3457 | '("maven-shared-utils" "java-surefire-common-java5" | ||
| 3458 | "java-surefire-common-junit3" "java-surefire-common-junit4" | ||
| 3459 | "java-surefire-api"))) | ||
| 3460 | #t)) | ||
| 3461 | (add-after 'build 'shade | ||
| 3462 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 3463 | (let ((jarjar | ||
| 3464 | (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$"))) | ||
| 3465 | (injar "java-surefire-junit4.jar") | ||
| 3466 | (outjar "java-surefire-junit4-shaded.jar")) | ||
| 3467 | (with-directory-excursion "build/jar" | ||
| 3468 | (with-output-to-file "rules" | ||
| 3469 | (lambda _ | ||
| 3470 | (format #t (string-append | ||
| 3471 | "rule " | ||
| 3472 | "org.apache.maven.shared.utils.** " | ||
| 3473 | "org.apache.maven.surefire.shade." | ||
| 3474 | "org.apache.maven.shared.utils.@1~%")))) | ||
| 3475 | (invoke "java" "-jar" jarjar "process" "rules" injar outjar) | ||
| 3476 | (delete-file injar) | ||
| 3477 | (rename-file outjar injar))) | ||
| 3478 | #t)) | ||
| 3479 | (replace 'install | ||
| 3480 | (install-from-pom "surefire-providers/surefire-junit4/pom.xml"))))) | ||
| 3481 | (propagated-inputs | ||
| 3482 | `(("java-junit" ,java-junit) | ||
| 3483 | ("java-surefire-parent-pom" ,java-surefire-parent-pom))) | ||
| 3484 | (inputs | ||
| 3485 | `(("java-surefire-common-junit4" ,java-surefire-common-junit4) | ||
| 3486 | ("java-surefire-common-junit3" ,java-surefire-common-junit3) | ||
| 3487 | ("java-surefire-common-java5" ,java-surefire-common-java5) | ||
| 3488 | ("java-surefire-api" ,java-surefire-api))) | ||
| 3489 | (native-inputs | ||
| 3490 | `(("java-jarjar" ,java-jarjar) | ||
| 3491 | ("unzip" ,unzip) | ||
| 3492 | ("java-junit" ,java-junit) | ||
| 3493 | ("java-hamcrest-all" ,java-hamcrest-all) | ||
| 3494 | ("java-fest-assert" ,java-fest-assert))) | ||
| 3495 | (synopsis "SureFire JUnit 4.0+ runner") | ||
| 3496 | (description "This package contains the runner for tests run on a forked | ||
| 3497 | JVM, using JUnit 4.0 or later."))) | ||
