From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hartmut Goebel Subject: Progress and todos for Jave maven Date: Thu, 13 Apr 2017 13:28:55 +0200 Message-ID: <58EF60F7.6010205@crazy-compilers.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:35945) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cycvw-0000DQ-Ig for guix-devel@gnu.org; Thu, 13 Apr 2017 07:29:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cycvt-0000hM-CI for guix-devel@gnu.org; Thu, 13 Apr 2017 07:29:04 -0400 Received: from mail-out.m-online.net ([212.18.0.10]:56788) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cycvt-0000gp-2h for guix-devel@gnu.org; Thu, 13 Apr 2017 07:29:01 -0400 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 3w3dpd55zlz1qt0X for ; Thu, 13 Apr 2017 13:28:56 +0200 (CEST) Received: from localhost (dynscan01.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 3w3dpc4nXNz3hjl6 for ; Thu, 13 Apr 2017 13:28:56 +0200 (CEST) Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan01.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id ZxIapBeH5s7B for ; Thu, 13 Apr 2017 13:28:55 +0200 (CEST) Received: from hermia.goebel-consult.de (ppp-46-244-150-203.dynamic.mnet-online.de [46.244.150.203]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS for ; Thu, 13 Apr 2017 13:28:55 +0200 (CEST) Received: from [192.168.110.2] (lenashee.goebel-consult.de [192.168.110.2]) by hermia.goebel-consult.de (Postfix) with ESMTP id E170560744 for ; Thu, 13 Apr 2017 13:33:42 +0200 (CEST) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel Hello, TL;DR: some progress on packaging maven; still a lot todo; need help from Java-developers. 1) Some progress on packaging maven I spent quite some on packaging maven again. This time I took a different approach which looks promising; maven comes with a list of transitive dependencies and includes a "build.xml" for bootstrapping via ant. So I started re-implementing the ant-tasks in guix (which are a few simple one only) and packaging the transitive dependencies. My first idea was to merge all sources into one big source tree. But this showed up to lead to an uggly and complicated (and thus hard to maintain) package definition. (And afterwards I discovered this would not even work since some meta-data file would need to be merged.) So I started building "bootstrap" packages for the dependecies. Packaging the dependencies showed up to be tricky, since for compiling these packages, other unlisted packages are required. That's a mess! So I started deleting classes (files) under the assumption that this code-part will not be used by maven since the dependency is not listed. Some code can not be removed or would lead to more and more code to be removed, so needed to package the dependency. One package (googe guice) includes another ant-task which is delivered as a jar-file. Luckily this jar includes the source files, too, but there seems to be no source-repository for this ant-task. maven also requires some source to be generated at build-time using "modello". It took me two days to make this work, I even needed to set up a Eclipse development environment and step through the code, just to find out that "could not find plugin" actually means: "plugin found, but initiating it failed due to x.y.z missing". Even increasing the debug-level did not show this. What crap! While I'm now confident to make this work, is is quite time-consuming :-(= 2) Still a lot todo / roadmap After we managed to have some bootstrap-maven, these are the next tasks: * write a maven-build-system (see below) * package all the dependencies of maven using the maven-build-system and the bootstrap-maven and including all code. This means to package a lot more complicated dependencies. * Decide on naming conventions, repository structure, which data to be kept in poms, etc. (see below for all of these) * Clean up all the clutter, e.g. find official sources, homepage, descriptions, etc. for all packages, 3) Help needed from Java-Developers I'll write this in a separate mail :-) =20 P.S.: My respect on the Java development community has vanished completely. I've never seen another programming language having thus a crappy source infrastructure: projects without home-page, packages without source, packages not able to bootstrap itself, outdated links, and thus. Bootstrapping (well, what they call bootstrapping) maven using ant downloads 67 MB, many jars are fetches in five different version, for one I counted even 12 versions! This is how unmaintainable software grows! --=20 Regards Hartmut Goebel | Hartmut Goebel | h.goebel@crazy-compilers.com | | www.crazy-compilers.com | compilers which you thought are impossible |