* State of maven build system, gradle and Apache commens @ 2016-09-01 11:36 Hartmut Goebel 2016-09-01 12:03 ` Ricardo Wurmus 0 siblings, 1 reply; 13+ messages in thread From: Hartmut Goebel @ 2016-09-01 11:36 UTC (permalink / raw) To: guix-devel [-- Attachment #1.1: Type: text/plain, Size: 543 bytes --] Hi, is anyone working on this? (I'm lacking knowledge to help with maven or gradle, but could help with commons.) -- Schönen Gruß Hartmut Goebel Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer Information Security Management, Security Governance, Secure Software Development Goebel Consult, Landshut http://www.goebel-consult.de Blog: http://www.goebel-consult.de/blog/digitale-burgerrechte-in-der-ara-snowden Kolumne: http://www.cissp-gefluester.de/2011-08-horrorszenario-bring-your-own-device [-- Attachment #1.2: Type: text/html, Size: 1521 bytes --] [-- Attachment #2: S/MIME Cryptographic Signature --] [-- Type: application/pkcs7-signature, Size: 2430 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: State of maven build system, gradle and Apache commens 2016-09-01 11:36 State of maven build system, gradle and Apache commens Hartmut Goebel @ 2016-09-01 12:03 ` Ricardo Wurmus 2016-09-01 16:51 ` Hartmut Goebel 2016-09-05 22:15 ` Björn Höfling 0 siblings, 2 replies; 13+ messages in thread From: Ricardo Wurmus @ 2016-09-01 12:03 UTC (permalink / raw) To: Hartmut Goebel; +Cc: guix-devel Hartmut Goebel <h.goebel@goebel-consult.de> writes: > is anyone working on this? (I'm lacking knowledge to help with maven > or gradle, but could help with commons.) We are still a long way off before get to a working maven build system. I have a few more Java packages sitting here, but it’s not much. We first need to recursively package all dependencies of Maven. The next packages on my list are “java-javax-mail” (done) and “java-log4j-core”, which needs the following packages: javax-persistence javax-jms java-zeromq kafka apache-commons These might have unpackaged dependencies of their own. If you took over “apache-commons” that would be very helpful. You should be able to use the “ant-build-system” to get started, even if it doesn’t result in the prettiest packages. Once we actually have Maven packaged (completely from source without cheating) we should take a look at the existing packages again and see if we should install jars with a directory layout that Maven expects. Until then I wouldn’t bother trying to anticipate all these issues. ~~ Ricardo ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: State of maven build system, gradle and Apache commens 2016-09-01 12:03 ` Ricardo Wurmus @ 2016-09-01 16:51 ` Hartmut Goebel 2016-09-02 7:47 ` Ricardo Wurmus 2016-09-05 22:15 ` Björn Höfling 1 sibling, 1 reply; 13+ messages in thread From: Hartmut Goebel @ 2016-09-01 16:51 UTC (permalink / raw) To: guix-devel [-- Attachment #1.1: Type: text/plain, Size: 1281 bytes --] Hallo, > apache-commons > > These might have unpackaged dependencies of their own. If you took over > “apache-commons” that would be very helpful. You should be able to use > the “ant-build-system” to get started, even if it doesn’t result in the > prettiest packages. Curiously maven requires commons-io, and commons-io can officially be build using maven. That's crude! I started some work on this. Not sure how far I'll get. I managed to suppress the download of external sources, but now I got stuck with CLASSPATH element /gnu/store/…-icedtea-2.6.7-jdk/bin/jar is not a JAR. And of course, this is not a jar, but a binary. Also the CLASSPATH includes *a lot* of stuff, eg, /gnu/store/…-icedtea-2.6.7-jdk/demo/jfc/Notepad/Notepad.jar which I'd assume should not be on the standard class-path? Any ideas? -- Schönen Gruß Hartmut Goebel Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer Information Security Management, Security Governance, Secure Software Development Goebel Consult, Landshut http://www.goebel-consult.de Blog: http://www.goebel-consult.de/blog/kleiner-erfahrungsbericht-mit-online-ocr-diensten Kolumne: http://www.cissp-gefluester.de/2010-09-mut-zur-beschraenkung [-- Attachment #1.2: Type: text/html, Size: 2539 bytes --] [-- Attachment #2: S/MIME Cryptographic Signature --] [-- Type: application/pkcs7-signature, Size: 2430 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: State of maven build system, gradle and Apache commens 2016-09-01 16:51 ` Hartmut Goebel @ 2016-09-02 7:47 ` Ricardo Wurmus 2016-09-02 10:44 ` Hartmut Goebel 0 siblings, 1 reply; 13+ messages in thread From: Ricardo Wurmus @ 2016-09-02 7:47 UTC (permalink / raw) To: Hartmut Goebel; +Cc: guix-devel Hartmut Goebel <h.goebel@goebel-consult.de> writes: > Hallo, > > apache-commons > > These might have unpackaged dependencies of their own. If you took over > “apache-commons” that would be very helpful. You should be able to use > the “ant-build-system” to get started, even if it doesn’t result in the > prettiest packages. > > Curiously maven requires commons-io, and commons-io can officially be > build using maven. That's crude! That’s a common problem, unfortunately (Maven itself needs Maven, for example). The “ant-build-system” can generate a simple “build.xml” file for those packages that don’t have one, so building individual libraries without Maven is possible (albeit not always convenient enough). > CLASSPATH element /gnu/store/…-icedtea-2.6.7-jdk/bin/jar is not a JAR. This should not be on the CLASSPATH. The “ant-build-system” sets CLASSPATH to the result of running “generate-classpath” on all inputs. Currently, all this does it add any and all “.jar” files to the CLASSPATH. To keep “jar” itself out, the regular expression should be changed from (find-files dir "\\.*jar$") to something like (find-files dir "\\.jar$") > And of course, this is not a jar, but a binary. Also the CLASSPATH > includes *a lot* of stuff, eg, > /gnu/store/…-icedtea-2.6.7-jdk/demo/jfc/Notepad/Notepad.jar which I'd > assume should not be on the standard class-path? This could be removed by augmenting “generate-classpath” in “guix/build/ant-build-system.scm”. ~~ Ricardo ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: State of maven build system, gradle and Apache commens 2016-09-02 7:47 ` Ricardo Wurmus @ 2016-09-02 10:44 ` Hartmut Goebel 2016-09-02 11:48 ` Ricardo Wurmus 0 siblings, 1 reply; 13+ messages in thread From: Hartmut Goebel @ 2016-09-02 10:44 UTC (permalink / raw) To: guix-devel [-- Attachment #1.1.1: Type: text/plain, Size: 1427 bytes --] Am 02.09.2016 um 09:47 schrieb Ricardo Wurmus: > This should not be on the CLASSPATH. The “ant-build-system” sets > CLASSPATH to the result of running “generate-classpath” on all inputs. > Currently, all this does it add any and all “.jar” files to the > CLASSPATH. To keep “jar” itself out, the regular expression should be > changed from > > (find-files dir "\\.*jar$") > > to something like > > (find-files dir "\\.jar$") Thanks for this tip, it helped. (Will submit a patch later) Meantime I managed to build commons-io, commons-cli, commons-lang and commons-codec. I found all of these need intervention for building, as there is no "install" target (maybe I missed something). Echo of the packages behaves a bit different (e.g. different directory names), while sharing some common patterns. I'll attach my WIP for your convenience. I failed building commons-logging, which requires e.g. javax.servelet, the avalon-frameweork and much more. -- Schönen Gruß Hartmut Goebel Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer Information Security Management, Security Governance, Secure Software Development Goebel Consult, Landshut http://www.goebel-consult.de Blog: http://www.goebel-consult.de/blog/warum-sie-nicht-perl-programmiern-sollten Kolumne: http://www.cissp-gefluester.de/2011-08-horrorszenario-bring-your-own-device [-- Attachment #1.1.2: Type: text/html, Size: 2645 bytes --] [-- Attachment #1.2: commons-io.txt --] [-- Type: text/plain, Size: 10863 bytes --] (use-modules (guix) (guix build-system ant) (guix licenses) (gnu packages base) (gnu packages java)) (define (apache-commons-url projname version) ; todo: add option for passing the archive basename (default: projname) (let ((basename projname)) (string-append "https://archive.apache.org/dist/commons/" projname "/source/" "commons-" basename "-" version "-src.tar.gz"))) ; todo: how to use these as a phase, like ; (replace 'install install-jars) ; (add-after 'build build-javadoc) (define* (install-jars #:key outputs #:allow-other-keys) (let ((share (string-append (assoc-ref outputs "out") "/share/java"))) (for-each (λ (f) (install-file f share)) (find-files "." "\\.jar2$")))) (define* (build-javadoc #:key (make-flags '()) #:allow-other-keys) (zero? (apply system* `("ant" "javadoc" ,@make-flags)))) ;(define* (install-javadoc #:key outputs #:allow-other-keys) ; (let ((docs (string-append (assoc-ref outputs "doc") ; "/share/doc/" ,name "-" ,version "/"))) ; (mkdir-p docs) ; (copy-recursively "target/apidocs" docs) ; )) ;(define-public java-commons-io-2.5 (package (name "java-commons-io") (version "2.5") (source (origin (method url-fetch) (uri (apache-commons-url "io" version)) (sha256 (base32 "0q5y41jrcjvx9hzs47x5kdhnasdy6rm4bzqd2jxl02w717m7a7v3")))) (build-system ant-build-system) (outputs '("out" "doc")) (arguments `(#:test-target "test" #:phases (modify-phases %standard-phases (add-after 'unpack 'symlink-junit.jar (lambda* (#:key inputs #:allow-other-keys) (let ((junit (assoc-ref inputs "java-junit")) (junit-version "4.12")) ; from build.xml (mkdir-p "lib") (symlink (string-append junit "/share/java/junit.jar") (string-append "lib/junit-" junit-version ".jar"))) )) (add-after 'build 'build-javadoc ;build-javadoc) (lambda* (#:key (make-flags '()) #:allow-other-keys) (zero? (apply system* `("ant" "javadoc" ,@make-flags))))) (replace 'install ;install-jars) (lambda* (#:key outputs #:allow-other-keys) (let ((share (string-append (assoc-ref outputs "out") "/share/java"))) (for-each (λ (f) (install-file f share)) (find-files "target" "\\.jar$"))))) ; todo: install poms for maven (add-after 'install 'install-doc ;install-javadoc) (lambda* (#:key outputs #:allow-other-keys) (let ((docs (string-append (assoc-ref outputs "doc") "/share/doc/" ,name "-" ,version "/"))) (mkdir-p docs) (copy-recursively "target/apidocs" docs) ))) ))) (native-inputs `(("java-junit" ,java-junit) ("(java-hamcrest-core" ,java-hamcrest-core))) (home-page "http://commons.apache.org/io/") (synopsis "Common useful IO related classes") (description "Commons-IO contains utility classes, stream implementations, file filters and endian classes.") (license asl2.0) );) ;(define-public java-commons-cli-2.5 (package (name "java-commons-cli") (version "1.3.1") (source (origin (method url-fetch) (uri (apache-commons-url "cli" version)) (sha256 (base32 "1fkjn552i12vp3xxk21ws4p70fi0lyjm004vzxsdaz7gdpgyxxyl")))) (build-system ant-build-system) ; todo: javadoc (arguments ; commons-cli does not provida a proper build.xml but seems to require ; maven for building `(#:jar-name (string-append "commons-cli-" ,version ".jar") #:phases (modify-phases %standard-phases ; todo: install poms for maven (delete 'check)))) (native-inputs `(("java-junit" ,java-junit))) (home-page "http://commons.apache.org/cli/") (synopsis "parsing command line options") (description "Commons-CLI library provides an API for parsing command line options passed to programs. It's also able to print help messages detailing the options available for a command line tool.") (license asl2.0) );) (package (name "java-commons-codec") (version "1.10") (source (origin (method url-fetch) (uri (apache-commons-url "codec" version)) (sha256 (base32 "1w9qg30y4s0x8gnmr2fgj4lyplfn788jqxbcz27lf5kbr6n8xr65")))) (build-system ant-build-system) (outputs '("out" "doc")) (arguments ; commons-cli does not provida a proper build.xml but seems to require ; maven for building `(#:test-target "test" #:phases (modify-phases %standard-phases (delete 'check) (add-after 'build 'build-javadoc ;build-javadoc) (lambda* (#:key (make-flags '()) #:allow-other-keys) (zero? (apply system* `("ant" "javadoc" ,@make-flags))))) (replace 'install ;install-jars) (lambda* (#:key outputs #:allow-other-keys) (let ((share (string-append (assoc-ref outputs "out") "/share/java"))) (for-each (λ (f) (install-file f share)) (find-files "dist" "\\.jar$"))))) ; todo: install poms for maven (add-after 'install 'install-doc ;install-javadoc) (lambda* (#:key outputs #:allow-other-keys) (let ((docs (string-append (assoc-ref outputs "doc") "/share/doc/" ,name "-" ,version "/"))) (mkdir-p docs) (copy-recursively "dist/docs/api" docs) ))) ))) (native-inputs `(("java-junit" ,java-junit))) (home-page "http://commons.apache.org/codec/") (synopsis "Common encoders and decoders such as Base64, Hex, Phonetic and URLs") (description "") (license asl2.0) );) ;(define-public java-commons-lang-2.6 (package (name "java-commons-lang") ; note: current release is lang3-3.4 (mind the different archive name) (version "2.6") (source (origin (method url-fetch) (uri (apache-commons-url "lang" version)) (sha256 (base32 "1mxwagqadzx1b2al7i0z1v0r235aj2njdyijf02szq0vhmqrfiq5")))) (build-system ant-build-system) (outputs '("out" "doc")) (arguments `(#:test-target "test" #:phases (modify-phases %standard-phases (delete 'check) ; todo: make tests work (add-after 'unpack 'symlink-junit.jar (lambda* (#:key inputs #:allow-other-keys) (let ((junit (assoc-ref inputs "java-junit")) (junit-version "4.12")) ; from build.xml (mkdir-p "lib") (symlink (string-append junit "/share/java/junit.jar") (string-append "lib/junit-" junit-version ".jar"))) )) (add-before 'check 'set-tzdir (lambda* (#:key inputs #:allow-other-keys) (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo")) #t)) (add-after 'build 'build-javadoc ;build-javadoc) (lambda* (#:key (make-flags '()) #:allow-other-keys) (zero? (apply system* `("ant" "javadoc" ,@make-flags))))) (replace 'install ;install-jars) (lambda* (#:key outputs #:allow-other-keys) (let ((share (string-append (assoc-ref outputs "out") "/share/java"))) (for-each (λ (f) (install-file f share)) (find-files "target" "\\.jar$"))))) ; todo: install poms for maven (add-after 'install 'install-doc ;install-javadoc) (lambda* (#:key outputs #:allow-other-keys) (let ((docs (string-append (assoc-ref outputs "doc") "/share/doc/" ,name "-" ,version "/"))) (mkdir-p docs) (copy-recursively "target/apidocs" docs) ))) ))) (native-inputs `(("java-junit" ,java-junit) ; The test-suite tests some timezone dependant functions, ; thus tzdata needs to be installed. ("tzdata", tzdata) ;("(java-hamcrest-core" ,java-hamcrest-core) )) (home-page "http://commons.apache.org/lang/") (synopsis "Common useful IO related classes") (description "Commons-IO contains utility classes, stream implementations, file filters and endian classes.") (license asl2.0) );) ;(define-public java-commons-logging-2.6 (package (name "java-commons-logging") (version "1.2") (source (origin (method url-fetch) (uri (apache-commons-url "logging" version)) (sha256 (base32 "10bwcy5w8d7y39n0krlwhnp8ds3kj5zhmzj0zxnkw0qdlsjmsrj9")))) (build-system ant-build-system) (outputs '("out" "doc")) (arguments `(#:test-target "test" #:build-target "compile" #:phases (modify-phases %standard-phases (delete 'check) ; todo: make tests work (add-after 'unpack 'symlink-junit.jar (lambda* (#:key inputs #:allow-other-keys) (let ((junit (assoc-ref inputs "java-junit")) (junit-version "4.12")) ; from build.xml (mkdir-p "lib") (symlink (string-append junit "/share/java/junit.jar") (string-append "lib/junit-" junit-version ".jar"))) )) (add-after 'build 'build-javadoc ;build-javadoc) (lambda* (#:key (make-flags '()) #:allow-other-keys) (zero? (apply system* `("ant" "javadoc" ,@make-flags))))) (replace 'install ;install-jars) (lambda* (#:key outputs #:allow-other-keys) (let ((share (string-append (assoc-ref outputs "out") "/share/java"))) (for-each (λ (f) (install-file f share)) (find-files "target" "\\.jar$"))))) ; todo: install poms for maven (add-after 'install 'install-doc ;install-javadoc) (lambda* (#:key outputs #:allow-other-keys) (let ((docs (string-append (assoc-ref outputs "doc") "/share/doc/" ,name "-" ,version "/"))) (mkdir-p docs) (copy-recursively "target/apidocs" docs) ))) ))) (native-inputs `(("java-junit" ,java-junit) ;avalon, ;("(java-hamcrest-core" ,java-hamcrest-core) )) (home-page "http://commons.apache.org/logging/") (synopsis "Common useful IO related classes") (description "Commons-IO contains utility classes, stream implementations, file filters and endian classes.") (license asl2.0) );) [-- Attachment #2: S/MIME Cryptographic Signature --] [-- Type: application/pkcs7-signature, Size: 2430 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: State of maven build system, gradle and Apache commens 2016-09-02 10:44 ` Hartmut Goebel @ 2016-09-02 11:48 ` Ricardo Wurmus 2016-09-02 12:43 ` Hartmut Goebel 0 siblings, 1 reply; 13+ messages in thread From: Ricardo Wurmus @ 2016-09-02 11:48 UTC (permalink / raw) To: Hartmut Goebel; +Cc: guix-devel Hartmut Goebel <h.goebel@goebel-consult.de> writes: > Meantime I managed to build commons-io, commons-cli, commons-lang and > commons-codec. Cool! > I found all of these need intervention for building, as there is no > "install" target (maybe I missed something). Echo of the packages > behaves a bit different (e.g. different directory names), while > sharing some common patterns. I'll attach my WIP for your convenience. “ant-build-system” creates a “build.xml” with an install target when “#:jar-name” is provided. This is useful in case there’s only a “pom.xml” and the package provides a single jar. ~~ Ricardo ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: State of maven build system, gradle and Apache commens 2016-09-02 11:48 ` Ricardo Wurmus @ 2016-09-02 12:43 ` Hartmut Goebel 2016-09-02 14:24 ` Ricardo Wurmus 0 siblings, 1 reply; 13+ messages in thread From: Hartmut Goebel @ 2016-09-02 12:43 UTC (permalink / raw) To: guix-devel [-- Attachment #1.1: Type: text/plain, Size: 1265 bytes --] Am 02.09.2016 um 13:48 schrieb Ricardo Wurmus: >> > I found all of these need intervention for building, as there is no >> > "install" target (maybe I missed something). Echo of the packages >> > behaves a bit different (e.g. different directory names), while >> > sharing some common patterns. I'll attach my WIP for your convenience. > “ant-build-system” creates a “build.xml” with an install target when > “#:jar-name” is provided. This is useful in case there’s only a > “pom.xml” and the package provides a single jar. Yes, this is what you wrote earlier today. But most of these (four) commons packages habe a build.xml, But they behave differently. Some build into "target", some into "dist/", some put docs in "apidocs/" others into "docs/api/". Or do you suggest to use a build.xml created be ant-build-system? -- Schönen Gruß Hartmut Goebel Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer Information Security Management, Security Governance, Secure Software Development Goebel Consult, Landshut http://www.goebel-consult.de Blog: http://www.goebel-consult.de/blog/fortbildung-iso-27001-lead-implementer Kolumne: http://www.cissp-gefluester.de/2010-09-mut-zur-beschraenkung [-- Attachment #1.2: Type: text/html, Size: 2693 bytes --] [-- Attachment #2: S/MIME Cryptographic Signature --] [-- Type: application/pkcs7-signature, Size: 2430 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: State of maven build system, gradle and Apache commens 2016-09-02 12:43 ` Hartmut Goebel @ 2016-09-02 14:24 ` Ricardo Wurmus 0 siblings, 0 replies; 13+ messages in thread From: Ricardo Wurmus @ 2016-09-02 14:24 UTC (permalink / raw) To: Hartmut Goebel; +Cc: guix-devel Hartmut Goebel <h.goebel@goebel-consult.de> writes: > Am 02.09.2016 um 13:48 schrieb Ricardo Wurmus: > > > > I found all of these need intervention for building, as there is no >> "install" target (maybe I missed something). Echo of the packages >> behaves a bit different (e.g. different directory names), while >> sharing some common patterns. I'll attach my WIP for your convenience. > > “ant-build-system” creates a “build.xml” with an install target when > “#:jar-name” is provided. This is useful in case there’s only a > “pom.xml” and the package provides a single jar. > > Yes, this is what you wrote earlier today. But most of these (four) > commons packages habe a build.xml, But they behave differently. Some > build into "target", some into "dist/", some put docs in "apidocs/" > others into "docs/api/". > > Or do you suggest to use a build.xml created be ant-build-system? This depends on the package and the expected output (e.g. one jar file to be installed). The build.xml generated by the ant-build-system does not build docs because it’s supposed to work for most Java packages. We could change the ant-build-system such that a smarter “build.xml” would be generated, but I think if a project provides a “build.xml” we should be using it, unless it’s really defective or close to useless. Another option is to write procedures to parse the “build.xml” and add custom targets, but since I don’t know what to expect in the build files I cannot think of a general approach that would be useful here. ~~ Ricardo ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: State of maven build system, gradle and Apache commens 2016-09-01 12:03 ` Ricardo Wurmus 2016-09-01 16:51 ` Hartmut Goebel @ 2016-09-05 22:15 ` Björn Höfling 2016-09-06 6:54 ` Ricardo Wurmus 2016-09-06 7:32 ` Hartmut Goebel 1 sibling, 2 replies; 13+ messages in thread From: Björn Höfling @ 2016-09-05 22:15 UTC (permalink / raw) To: Ricardo Wurmus; +Cc: guix-devel, Hartmut Goebel Hi Hartmut and Ricardo, On Thu, 1 Sep 2016 14:03:10 +0200 Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> wrote: > > Hartmut Goebel <h.goebel@goebel-consult.de> writes: > > > is anyone working on this? (I'm lacking knowledge to help with maven > > or gradle, but could help with commons.) > > We are still a long way off before get to a working maven build > system. I have a few more Java packages sitting here, but it’s not > much. > > We first need to recursively package all dependencies of Maven. The > next packages on my list are “java-javax-mail” (done) and > “java-log4j-core”, which needs the following packages: > > javax-persistence > javax-jms > java-zeromq > kafka > apache-commons > > These might have unpackaged dependencies of their own. If you took > over “apache-commons” that would be very helpful. You should be able > to use the “ant-build-system” to get started, even if it doesn’t > result in the prettiest packages. > > Once we actually have Maven packaged (completely from source without > cheating) we should take a look at the existing packages again and see > if we should install jars with a directory layout that Maven expects. > Until then I wouldn’t bother trying to anticipate all these issues. I'm interested in which version of maven do you start to create? Which version(s) of the dependencies/plugins are you rebuilding? Here is my experience so far: Last month I started looking at the maven build-process too. I know that it wouldn't be that easy, but it's harder than expected. First, I asked on maven-devel [0], but I had the feeling they don't understand the philosophy behind working with source dependencies instead of binary ones. Then I looked for myself at different versions of Maven and decided to go with version 1.1 and bootstrap me up. But even this has hard and funny dependencies: For example, dom4j-1.7-20060614.jar has in it's META-INF written: "*Note* that this is a custom-built version for the Maven project. It was built from dom4j cvs trunk as of 2006-06-08 with the branch DOM4J_1_X_BRANCH merged in." OK, the branch is still there on SourceForge, but can I really be sure to get the source code they used to build the jar-file? Or is that ultimately lost in Java/Apache history? Next, dom4j and others use forehead-1.0-beta-5.jar. The original project is no longer there. Luckily I found a copy on a Gentoo mirror [1]. Other dependencies, even relatively old ones need Maven in order to compile (at least they use Maven originally, maybe it's possible to build them with some Ant task too). That is the case for commons-jelly/1.0.1-20060717, which by the way is again a patched version ("*Note* that this is a custom-built version for the Maven project. It was built from svn trunk as of 2006-07-17 (r 422982) but with the fixes for JELLY-213 and JELLY-214 reverted"). How do you proceed? Do you have an issue raised where we can share knowledge/coordinate next steps? Björn [0] https://www.mail-archive.com/dev@maven.apache.org/msg110304.html (Post from Björn Höfling at Mon, 22 Aug 2016 23:26:10 -0700 on dev at maven dot apache dot org) [1] http://ftp.fi.debian.org/gentoo/distfiles/forehead-1.0_beta5.tbz2 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: State of maven build system, gradle and Apache commens 2016-09-05 22:15 ` Björn Höfling @ 2016-09-06 6:54 ` Ricardo Wurmus 2016-09-06 7:32 ` Hartmut Goebel 1 sibling, 0 replies; 13+ messages in thread From: Ricardo Wurmus @ 2016-09-06 6:54 UTC (permalink / raw) To: Björn Höfling; +Cc: guix-devel, Hartmut Goebel Hi Björn, > I'm interested in which version of maven do you start to create? Which > version(s) of the dependencies/plugins are you rebuilding? I decided to start with the latest and build as many dependencies as possible without Maven. I briefly considered packaging an older version but ran into similar issues of provenance as you have, so I didn’t investigate further. ~~ Ricardo ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: State of maven build system, gradle and Apache commens 2016-09-05 22:15 ` Björn Höfling 2016-09-06 6:54 ` Ricardo Wurmus @ 2016-09-06 7:32 ` Hartmut Goebel 2016-09-06 20:43 ` Björn Höfling 2016-09-12 11:26 ` Java hand-over (was: State of maven build system, gradle and Apache commens) Hartmut Goebel 1 sibling, 2 replies; 13+ messages in thread From: Hartmut Goebel @ 2016-09-06 7:32 UTC (permalink / raw) To: guix-devel [-- Attachment #1.1: Type: text/plain, Size: 2062 bytes --] Am 06.09.2016 um 00:15 schrieb Björn Höfling: > I'm interested in which version of maven do you start to create? Which > version(s) of the dependencies/plugins are you rebuilding? I started building the current version of maven, since the others are outdated and I did not want to rely on unmaintained software. > How do you proceed? Do you have an issue raised where we can share > knowledge/coordinate next steps? I'll convert my intermediate results into patches and some "report" to the mailinglist later this week. I gave up on packaging further Java packages. It's a abottomless pit of recursive dependencies. "Bootstrapping" maven requires some pre-built .jar files (some of which are included in maven's "source"). But building these .jar files requires maven to find it's way through all the build-steps. There is some "maven-ant-plugin" which is said to "Generates an Ant build file from a POM." but (since it is a maven-plugin), it again requires maven. Debian has some "maven-ant-helper" which contains some default "maven-build.xml", but again requires maven. Later this week I'll prepare my work and some ides so others can pick up and then Java can see my backside. Side note;: I always had a bad feeling about Java software, but now I have a informed position, why Java software is of bad quality. One must only look at these cyclic build-dependencies and the sheer amount of packages from so many different sources required to package even "common" stuff. Example: some "easymock" package requires a "dexmaker" package from google (which seems to be for access in android .dex files). Such a crap! -- Schönen Gruß Hartmut Goebel Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer Information Security Management, Security Governance, Secure Software Development Goebel Consult, Landshut http://www.goebel-consult.de Blog: http://www.goebel-consult.de/blog/ehrlichkeit-made-in-germany Kolumne: http://www.cissp-gefluester.de/2010-06-adobe-und-der-maiszunsler [-- Attachment #1.2: Type: text/html, Size: 3573 bytes --] [-- Attachment #2: S/MIME Cryptographic Signature --] [-- Type: application/pkcs7-signature, Size: 2430 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: State of maven build system, gradle and Apache commens 2016-09-06 7:32 ` Hartmut Goebel @ 2016-09-06 20:43 ` Björn Höfling 2016-09-12 11:26 ` Java hand-over (was: State of maven build system, gradle and Apache commens) Hartmut Goebel 1 sibling, 0 replies; 13+ messages in thread From: Björn Höfling @ 2016-09-06 20:43 UTC (permalink / raw) Cc: guix-devel On Tue, 6 Sep 2016 09:32:53 +0200 Hartmut Goebel <h.goebel@goebel-consult.de> wrote: > Am 06.09.2016 um 00:15 schrieb Björn Höfling: [..] > > How do you proceed? Do you have an issue raised where we can share > > knowledge/coordinate next steps? > > I'll convert my intermediate results into patches and some "report" to > the mailinglist later this week. I'm interested in your report and want to go on with Maven on GuixSD. > I gave up on packaging further Java packages. It's a abottomless pit > of recursive dependencies. Java people care too little about the dependencies of their dependencies. I have to point fingers at myself too. I hope that building everything from source and caring more about the software freedom helps a bit with that. But JavaScript/NPM is even worse. Björn ^ permalink raw reply [flat|nested] 13+ messages in thread
* Java hand-over (was: State of maven build system, gradle and Apache commens) 2016-09-06 7:32 ` Hartmut Goebel 2016-09-06 20:43 ` Björn Höfling @ 2016-09-12 11:26 ` Hartmut Goebel 1 sibling, 0 replies; 13+ messages in thread From: Hartmut Goebel @ 2016-09-12 11:26 UTC (permalink / raw) To: guix-devel [-- Attachment #1.1: Type: text/plain, Size: 25303 bytes --] Hello, as stated earlier in this thread. I'm not going to spend any more time on packaging java. But for others, more skilled in this mine-field, being able to continue the work, here are some notes. Even if non of this is working it at least saves some time figuring out the source-urls and checksums :-) So here are my scratches from my work on packaging some java packages and maven. Good Luck! Notes for a "junits" ant task: outputting the reports into some "${build.home}/test-reports" seems to be a good idea. ; <target name="junit" depends="compile-test"> ; <test name="${test.entry}" todir="${build.home}/test-reports" if="test.entry"/> ; <batchtest fork="yes" todir="${build.home}/test-reports" unless="test.entry"> ; <fileset dir="${test.home}"> ; <include name="**/*Test.java"/> ; <exclude name="**/*AbstractTest.java"/> ; </fileset> ; </batchtest> ; <batchtest> ; <fileset dir="src/test" includes="**/*Test.java"/> ; </batchtest> ; <target name="compile-test" depends="compile" description="Compile tests"> ; <compile module="test" refid="path.run"/> ; </target> ; -*- mode: scheme -*- (use-modules (guix) (guix build-system ant) (guix build java-utils) (guix git-download) ((guix licenses) #:prefix license:) (gnu packages base) (gnu packages java) (gnu packages zip) ) ;---------- (define-public maven-ant-helper ; todo: check content of files " Helper scripts for building Maven components with ant This is a package from Debian. It adds some environment that should simplify generating of (originally) Debian packages. I seems to be meant to use maven and implement something like the "default build.xml" we have for ant-build-system. I doubt this is the way to go since it does thing guix typically does in guile. Additionally it is designed to be felxible which makes it more complicated again. It includes a "modello" implementation, which *may* be worth carving out - some person knowledable in java may be able to tell if it. " (package (name "maven-ant-helper") (version "7.11") (source (origin (method git-fetch) (uri (git-reference (url "git://anonscm.debian.org/pkg-java/maven-ant-helper.git") (commit (string-append "debian/" version)))) (sha256 (base32 "1aldw40b5bv0sx3nxp0m3zwdwrnyp1cslwqv4z1ifz1jkj4zm8vb")))) (build-system ant-build-system) ; todo: build javadocs (arguments `(#:jar-name (string-append ,name "-" ,version ".jar") #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-files (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (share (string-append out "/share/maven-ant-helper"))) (substitute* "maven-build.xml" ; lib${package}-java -> java-${package} (("<property name=\"bin.package\" value=\"lib\\$\\{package\\}-java\"") "<property name=\"bin.package\" value=\"java-\\$\\{package\\}\"") (("\"/usr/share/maven-ant-helper/") (string-append "\"" share "/")) )))) (add-after 'install 'install-other-files (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (share (string-append out "/share/maven-ant-helper"))) (install-file "maven-build.xml" share) (install-file "maven-defaults.properties" share) (install-file "manifest.mf" share) (copy-recursively "bootstrap" (string-append share "/bootstrap")) )))))) (home-page "https://anonscm.debian.org/cgit/pkg-java/maven-ant-helper.git") (synopsis "Helper scripts for building Maven components with ant") (description "An environment that can be used to simplify the creation of GUIX packages to support the Maven system. A \"modello\" ant task is also provided. maven-build.xml attempts to reproduce the Maven build life-cycle. You can use it to build your jar or javadoc. If you have java-maven-core installed, you can even use it to launch some Maven plugins to generate some code.") (license license:asl2.0))) (define-public maven-ant-tasks ; fails to build " I assume this is a task to run ant from a maven .pom file. I though it might be useful, but did not get any further. " (package (name "maven-ant-tasks") (version "2.1.3") (source (origin (method url-fetch) (uri (string-append "https://archive.apache.org/dist/maven/" "ant-tasks/" version "/source/" "maven-ant-tasks-" version "-src.zip")) ; no tar.gz (sha256 (base32 "1d3iplx8yf19l0zyan6jgy94sdly9lylagjdwmclzw6zk848z0rv")))) (build-system ant-build-system) (outputs '("out" "doc")) (arguments `(#:test-target "test" ;#:jar-name (string-append "easymock-" ,version ".jar") )) (native-inputs `(("unzip" ,unzip) ("java-junit" ,java-junit))) (home-page "") (synopsis "") (description "") (license license:asl2.0))) (define-public maven-ant-plugin ; requires maven :-( (package (name "maven-ant-plugin") (version "2.4") (source (origin (method url-fetch) (uri (string-append "https://archive.apache.org/dist/maven/plugins/" "maven-ant-plugin-" version "-source-release.zip")) (sha256 (base32 "1jac72mvmqaga7qmdj7xfpdjqb4925aw6jimb4izzy45fwd8dsff")))) (build-system ant-build-system) ;(outputs '("out" "doc")) (arguments `(#:jar-name (string-append ,name "-" ,version ".jar") )) (native-inputs `(;("unzip" ,unzip) ; ("java-junit" ,java-junit) )) (home-page "") (synopsis "Generates an Ant build file from a POM.") (description "") (license license:asl2.0))) (define-public maven ; fails to build " This should become the main maven package. Maven requires *a lot* of other jar-files, see list below. 'Bootstrapping' this package (as the documentation calls it) required some .jar files to exist. Some of which are included, others are downloaded from the internet. The source is organized into some sub-projects, e.g 'maven-artifacts', some of which I ewas able to build - see the package descriptions below. Using separate packages for each of these sub-projects will propably not be senceful, I just did it to figure out how far I can get. subprojects: artifact, builder-support, compat, core, embedder, model, model-builder, plugin-api repositoy-metadata, settings, settings-builder One solution could be to process each of the 'configure', 'build', 'install' steps of the ant-builder for each subproject. maven-core requires: Subprojects: maven-artifact, maven-execution, maven-model, maven-graph maven-internal maven-lifecycle maven-plugin maven-project maven-repository maven-session External: plexus-component plexus-logging eclipse-aether eclipse-aether-repository eclipse-aether-util com.google.common.collect " (package (name "maven") (version "3.3.9") (source (origin (method url-fetch) (uri (string-append "https://archive.apache.org/dist/maven/" "maven-3/" version "/source/" "apache-maven-" version "-src.tar.gz")) todo: remove included .jar files. Attention: some .jar-files are in the test-suite an seem to be used for checking results. (sha256 (base32 "1g0iavyb34kvs3jfrx2hfnr8lr11m39sj852cy7528wva1glfl4i")))) (build-system ant-build-system) (outputs '("out" "doc")) (arguments `(#:test-target "test" #:build-target "all" ;#:jar-name (string-append "easymock-" ,version ".jar") #:phases (modify-phases %standard-phases (add-after 'unpack 'create-build.properties ; ant -Dmaven.home="$HOME/apps/maven/apache-maven-3.3.x-SNAPSHOT" (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (setenv "M2_HOME" out))))))) (native-inputs `(("java-junit" ,java-junit))) (home-page "") (synopsis "") (description "") (license license:asl2.0))) (define-public java-maven-subproject-artifact ; builds (package (name "java-maven-subproject-artifact") (version "3.3.9") (source (origin (method url-fetch) (uri (string-append "https://archive.apache.org/dist/maven/" "maven-3/" version "/source/" "apache-maven-" version "-src.tar.gz")) (sha256 (base32 "1g0iavyb34kvs3jfrx2hfnr8lr11m39sj852cy7528wva1glfl4i")))) (build-system ant-build-system) ;(outputs '("out" "doc")) (arguments `(#:jar-name (string-append "maven-artifact-" ,version ".jar") #:src-dir "src/main" #:phases (modify-phases %standard-phases (add-after 'unpack 'change-dir (lambda _ (chdir "maven-artifact")))) )) (native-inputs `(("java-commons-lang3" ,java-commons-lang3) ("java-plexus-util" ,java-plexus-util) ;("java-junit" ,java-junit) )) (home-page "") (synopsis "") (description "") (license license:asl2.0))) (define-public java-maven-subproject-builder-support ; builds (package (name "java-maven-subproject-builder-support") (version "3.3.9") (source (origin (method url-fetch) (uri (string-append "https://archive.apache.org/dist/maven/" "maven-3/" version "/source/" "apache-maven-" version "-src.tar.gz")) (sha256 (base32 "1g0iavyb34kvs3jfrx2hfnr8lr11m39sj852cy7528wva1glfl4i")))) (build-system ant-build-system) ;(outputs '("out" "doc")) (arguments `(#:jar-name (string-append "maven-builder-support-" ,version ".jar") #:src-dir "src/main" #:phases (modify-phases %standard-phases (add-after 'unpack 'change-dir (lambda _ (chdir "maven-builder-support")))) )) (native-inputs `(("java-commons-lang3" ,java-commons-lang3) ("java-plexus-util" ,java-plexus-util) ;("java-junit" ,java-junit) )) (home-page "") (synopsis "") (description "") (license license:asl2.0))) ; settings-builder: maven-builder-support, maven-settings, plexus-utils, plexus-interpolation, ; plexus-component-annotations, plexus-sec-dispatcher, commons-lang3 (define-public java-maven-subproject-settings ; builds (package (name "java-maven-subproject-settings") (version "3.3.9") (source (origin (method url-fetch) (uri (string-append "https://archive.apache.org/dist/maven/" "maven-3/" version "/source/" "apache-maven-" version "-src.tar.gz")) (sha256 (base32 "1g0iavyb34kvs3jfrx2hfnr8lr11m39sj852cy7528wva1glfl4i")))) (build-system ant-build-system) ;(outputs '("out" "doc")) (arguments `(#:jar-name (string-append "maven-settings-" ,version ".jar") #:src-dir "src/main" #:phases (modify-phases %standard-phases (add-after 'unpack 'change-dir (lambda _ (chdir "maven-settings")))) )) (native-inputs `(("java-commons-lang3" ,java-commons-lang3) ("java-plexus-util" ,java-plexus-util) ;("java-junit" ,java-junit) )) (home-page "") (synopsis "") (description "") (license license:asl2.0))) (define-public java-maven-subproject-repository-metadata ; builds (package (name "java-maven-subproject-repository-metadata") (version "3.3.9") (source (origin (method url-fetch) (uri (string-append "https://archive.apache.org/dist/maven/" "maven-3/" version "/source/" "apache-maven-" version "-src.tar.gz")) (sha256 (base32 "1g0iavyb34kvs3jfrx2hfnr8lr11m39sj852cy7528wva1glfl4i")))) (build-system ant-build-system) ;(outputs '("out" "doc")) (arguments `(#:jar-name (string-append "maven-repository-metadata-" ,version ".jar") #:src-dir "src/main" #:phases (modify-phases %standard-phases (add-after 'unpack 'change-dir (lambda _ (chdir "maven-repository-metadata")))) )) (native-inputs `(;("java-commons-lang3" ,java-commons-lang3) ("java-plexus-util" ,java-plexus-util) ;("java-junit" ,java-junit) )) (home-page "") (synopsis "") (description "") (license license:asl2.0))) ; model-builder: plexus-utils, plexus-interpolation, plexus-component-annotations, maven-model, ; maven-artifact, maven-builder-support, com.google.guava, commons-lang3, ; org.eclipse.sisu.plexus (define-public java-maven-subproject-model ; fails to build (package (name "java-maven-subproject-model") (version "3.3.9") (source (origin (method url-fetch) (uri (string-append "https://archive.apache.org/dist/maven/" "maven-3/" version "/source/" "apache-maven-" version "-src.tar.gz")) (sha256 (base32 "1g0iavyb34kvs3jfrx2hfnr8lr11m39sj852cy7528wva1glfl4i")))) (build-system ant-build-system) ;(outputs '("out" "doc")) (arguments `(#:jar-name (string-append "maven-model-" ,version ".jar") #:src-dir "src/main" #:phases (modify-phases %standard-phases (add-after 'unpack 'change-dir (lambda _ (chdir "maven-model")))) )) (native-inputs `(("java-commons-lang3" ,java-commons-lang3) ("java-plexus-util" ,java-plexus-util) ; modello-maven-plugin for building some files ("java-junit" ,java-junit))) (home-page "") (synopsis "") (description "") (license license:asl2.0))) ;---------- (define-public java-easymock ; requires com.google.dexmaker.stock for building! (package (name "java-easymock") (version "3.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/easymock/easymock/archive/" "easymock-" version ".tar.gz")) (sha256 (base32 "1yzg0kv256ndr57gpav46cyv4a1ns5sj722l50zpxk3j6sk9hnmi")))) (build-system ant-build-system) ;(outputs '("out" "doc")) (arguments `(;#:test-target "test" #:jar-name (string-append "easymock-" ,version ".jar") #:phases (modify-phases %standard-phases (add-after 'unpack 'chdir (lambda _ ; the core component is in a sub-directory, tests would be in ; some `test-…` directory side. (chdir "core")))))) (inputs `(("java-junit" ,java-junit))) (home-page "") (synopsis "") (description "") (license license:asl2.0))) ;---------- (define* (apache-commons-url projname version #:optional (basename (string-append "commons-" projname))) (string-append "mirror://apache/commons/" projname "/source/" basename "-" version "-src.tar.gz")) (define-public java-commons-beanutils ; requires commons-collections, commons-logging (package (name "java-commons-beanutils") (version "1.9.2") (source (origin (method url-fetch) (uri (apache-commons-url "beanutils" version)) (sha256 (base32 "0j805kxn6a61s8wxpcj1bw4zcg9dgx3ah6nzk2nqn9sznv9wmz4i")))) (build-system ant-build-system) (outputs '("out" "doc")) (arguments `(#:test-target "test" ;#:jar-name (string-append "commons-beanutils-" ,version ".jar") #:phases (modify-phases %standard-phases (add-after 'unpack 'symlink-junit.jar symlink-junit-jar-hack) (add-after 'build 'build-javadoc ant-build-javadoc) (replace 'install (install-jars "target")) ; todo: install poms for maven (add-after 'install 'install-doc (install-javadoc "target/apidocs"))))) (native-inputs `(("java-junit" ,java-junit) ("java-hamcrest-core" ,java-hamcrest-core))) (home-page "http://commons.apache.org/beanutils/") (synopsis "") (description "") (license license:asl2.0))) (define-public java-commons-chain ; requires commons-logging, commons-digester (package (name "java-commons-chain") (version "1.2") (source (origin (method url-fetch) (uri (apache-commons-url "chain" version)) (sha256 (base32 "0lgib3dpkympp8ajlgpfavbzfal9bv685gfa9ygyv091ja772rsd")))) (build-system ant-build-system) ; todo: javadoc (arguments ; commons-chain does not provida a proper build.xml but seems to require ; maven for building `(#:jar-name (string-append "commons-chain-" ,version ".jar") #:phases (modify-phases %standard-phases ; todo: install poms for maven (delete 'check)))) (native-inputs `(("java-junit" ,java-junit))) (home-page "http://commons.apache.org/chain/") (synopsis "Chain of Responsibility pattern implemention") (description "") (license license:asl2.0))) (define-public java-commons-collections ; tests requires easymock, hamcrest (package (name "java-commons-collections") (version "4.1") (source (origin (method url-fetch) (uri (apache-commons-url "collections" version "commons-collections4")) (sha256 (base32 "1krfhvggympq4avk7gh6qafzf6b9ip6r1m4lmacikyx04039m0wl")))) (build-system ant-build-system) (outputs '("out" "doc")) (arguments `(#:tests? #f #:test-target "test" #:phases (modify-phases %standard-phases (delete 'check) ; todo: fails to load junit.framework (add-after 'unpack 'create-build.properties (lambda* (#:key inputs #:allow-other-keys) (let ((junit (assoc-ref inputs "java-junit")) (hamcrest (assoc-ref inputs "java-hamcrest")) (easymock (assoc-ref inputs "java-easymock")) (fh (open-output-file "build.properties"))) (format fh (string-append "junit.jar = " junit "/share/java/junit.jar" "\n" "hamcrest.jar = " hamcrest "/share/java/hamcrest.jar" "\n" "easymock.jar = " easymock "/share/java/easymock.jar" "\n" )) (close-output-port fh)))) (add-after 'build 'build-javadoc ant-build-javadoc) (replace 'install (install-jars "dist")) ; todo: install poms for maven (add-after 'install 'install-doc (install-javadoc "dist/docs/api"))))) (native-inputs `(("java-junit" ,java-junit))) ; easymock, hamcrest (home-page "http://commons.apache.org/collections/") (synopsis "") (description "") (license license:asl2.0))) (define-public java-commons-compress ;fails: requires org.mockito.InjectMocks ; lint okay. ; requires junit, orz.tukaani.xz-1.5, ; powermock-module-junit4, powermock.-api-mockito (package (name "java-commons-compress") (version "1.12") (source (origin (method url-fetch) (uri (apache-commons-url "compress" version)) (sha256 (base32 "0g36vb2a1zvy021ycy47yr1k7bb8lccc28w9n5ap5zn4dg2480rx")))) (build-system ant-build-system) ; todo: javadoc (arguments ; commons-cli does not provida a proper build.xml but seems to require ; maven for building `(#:jar-name (string-append "commons-compress-" ,version ".jar") #:phases (modify-phases %standard-phases (delete 'check)))) (inputs `(("java-xz" ,java-xz))) (native-inputs `(("java-junit" ,java-junit))) (home-page "http://commons.apache.org/compress/") (synopsis "Java API for working with compression and archive formats") (description "Apache Commons Compress defines a Java API for working with compression and archive formats. These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump. This is a part of the Apache Commons Project.") (license license:asl2.0))) (define-public java-commons-configuration ; requires a lot of commons modules and quite some others (package (name "java-commons-configuration") (version "2.1") (source (origin (method url-fetch) (uri (apache-commons-url "configuration" version "commons-configuration2")) (sha256 (base32 "0dk96wjmfl8dz14c2x0zazbcqam5ls6p4b182j8bqml4kzrr6l2v")))) (build-system ant-build-system) (native-inputs `(("java-junit" ,java-junit))) (home-page "http://commons.apache.org/configuration/") (synopsis "Reading of configuration/preferences files in various formats") (description "") (license license:asl2.0))) ;; java-commons-crypto (define-public java-commons-csv ; requires junit, commons-io, commons-lang3, h2 database (package (name "java-commons-csv") (version "1.4") (source (origin (method url-fetch) (uri (apache-commons-url "csv" version)) (sha256 (base32 "1l89m0fm2s3xx3v3iynvangymfg2vlyngaj6fgsi457nmsw7m7ij")))) (build-system ant-build-system) ; todo: javadoc (native-inputs `(("java-junit" ,java-junit))) (home-page "http://commons.apache.org/csv/") (synopsis "") (description "") (license license:asl2.0))) (define-public java-commons-digester ; requires commons-beanutils, commons-logging (package (name "java-commons-digester") (version "3.2") (source (origin (method url-fetch) (uri (apache-commons-url "digester" version "commons-digester3")) (sha256 (base32 "03kc18dfl5ma50cn02ji7rbhm33qpxyd9js6mvzznf8f7y6pmykk")))) (build-system ant-build-system) (outputs '("out" "doc")) (arguments ; commons-cli does not provida a proper build.xml but seems to require ; maven for building `(#:jar-name (string-append ,name "-" ,version ".jar") #:src-dir "src/main" #:phases (modify-phases %standard-phases (add-after 'build 'build-javadoc ant-build-javadoc) (replace 'install (install-jars "dist")) (add-after 'install 'install-doc (install-javadoc "dist/docs/api"))))) (native-inputs `(("java-junit" ,java-junit))) (home-page "http://commons.apache.org/digester/") (synopsis "") (description "The Apache Commons Digester package lets you configure an XML to Java object mapping module which triggers certain actions called rules whenever a particular pattern of nested XML elements is recognized.") (license license:asl2.0))) (define-public java-commons-logging ; requires javax.servlet, one of log4j, avalon, logkit (package (name "java-commons-logging") (version "1.2") (source (origin (method url-fetch) (uri (apache-commons-url "logging" version)) (sha256 (base32 "10bwcy5w8d7y39n0krlwhnp8ds3kj5zhmzj0zxnkw0qdlsjmsrj9")))) (build-system ant-build-system) (outputs '("out" "doc")) (arguments `(#:test-target "test" #:build-target "compile" #:phases (modify-phases %standard-phases (delete 'check) ; todo: make tests work (add-after 'unpack 'symlink-junit.jar symlink-junit-jar-hack) (add-after 'build 'build-javadoc ant-build-javadoc) (replace 'install (install-jars "target")) ; todo: install poms for maven (add-after 'install 'install-doc (install-javadoc "target/apidocs"))))) (native-inputs `(("java-junit" ,java-junit) ;javax.servlet ;optional: avalon, logkit, log4j ;("java-hamcrest-core" ,java-hamcrest-core) )) (home-page "http://commons.apache.org/logging/") (synopsis "") (description "Apache Commons Logging is a thin adapter allowing configurable bridging to other, well known logging systems") (license license:asl2.0) )) -- Schönen Gruß Hartmut Goebel Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer Information Security Management, Security Governance, Secure Software Development Goebel Consult, Landshut http://www.goebel-consult.de Blog: http://www.goebel-consult.de/blog/bestanden-iso-27001-lead-implementer Kolumne: http://www.cissp-gefluester.de/2011-10-aus-der-schublade-in-die-koepfe [-- Attachment #1.2: Type: text/html, Size: 38168 bytes --] [-- Attachment #2: S/MIME Cryptographic Signature --] [-- Type: application/pkcs7-signature, Size: 2430 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2016-09-12 11:27 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-09-01 11:36 State of maven build system, gradle and Apache commens Hartmut Goebel 2016-09-01 12:03 ` Ricardo Wurmus 2016-09-01 16:51 ` Hartmut Goebel 2016-09-02 7:47 ` Ricardo Wurmus 2016-09-02 10:44 ` Hartmut Goebel 2016-09-02 11:48 ` Ricardo Wurmus 2016-09-02 12:43 ` Hartmut Goebel 2016-09-02 14:24 ` Ricardo Wurmus 2016-09-05 22:15 ` Björn Höfling 2016-09-06 6:54 ` Ricardo Wurmus 2016-09-06 7:32 ` Hartmut Goebel 2016-09-06 20:43 ` Björn Höfling 2016-09-12 11:26 ` Java hand-over (was: State of maven build system, gradle and Apache commens) Hartmut Goebel
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).