From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Marusich Subject: Re: Need help from Java-developers Date: Sun, 23 Apr 2017 01:41:01 -0700 Message-ID: <8760hvms82.fsf@gmail.com> References: <58EF611E.6060404@crazy-compilers.com> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:40575) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d2D53-00059M-Hl for guix-devel@gnu.org; Sun, 23 Apr 2017 04:41:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d2D52-0004Ju-2P for guix-devel@gnu.org; Sun, 23 Apr 2017 04:41:17 -0400 Received: from mail-it0-x230.google.com ([2607:f8b0:4001:c0b::230]:35070) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d2D51-0004Jj-SS for guix-devel@gnu.org; Sun, 23 Apr 2017 04:41:16 -0400 Received: by mail-it0-x230.google.com with SMTP id 70so27377991ita.0 for ; Sun, 23 Apr 2017 01:41:15 -0700 (PDT) In-Reply-To: <58EF611E.6060404@crazy-compilers.com> (Hartmut Goebel's message of "Thu, 13 Apr 2017 13:29:34 +0200") 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: Hartmut Goebel Cc: guix-devel --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Hartmut, I want to help, but I'm not sure how much help I can actually provide. I'm familiar with Java, but I've only worked a little bit with Maven. Please forgive me if I say anything that is inaccurate or naive! You probably know more about Maven than I do. Hartmut Goebel writes: > Hi, > > as bootstrapping maven progresses (see my other post), the need for help > from Java-developers arises. > > To finish all the work to be done after maven bootstrapping, some > experienced Java developers are needed. The following questions need to > be answered. > > * Designing the maven-build-system as follows: > o How to maven commands map to our build phases? Should they map, > should there be new ones? I'm not sure, but whatever seems simplest and works is probably a good place to start. > o Is there a need to clean up the pom-files prior to building, > e.g. remove version numbers? Why would that be necessary? Will the presence of the version numbers interfere with the build somehow? > o How to make the maven-build-system to never ever include other > jar? Perhaps we need to post-process the generated jars. Speaking of JAR files, shouldn't we try to avoid them entirely? My understanding is that they are compressed files, which means the Guix daemon won't be able to scan them for references. I don't know if it's easy to use Maven to build a project without putting the build output into a JAR file, though. > o How to handle pom-files (see below) > > * Which naming conventions should be used for packages? Maven has the > notion of "group-id" and "atrtifact". Should this be kept? OTOH, > there are very common packages like "commons-io" aka > "apache-commons-io". Whatever is simplest to do is a good place to start. I think the name of the Guix package is what matters most, right? So, maybe the Guix package definition for apache-commons-io would be "java-apache-commons-io", but internally within Maven it would use some other name? I think this is less important than getting it working in the first place, so I have no strong opinions on this. > > * Where should the repo-files be kept in Guix? Debian seems to bot > them into a dir-structure which I assume is leaned on some > file-structure in the maven central repository. See > > and > > Am I correct in understanding that the "repo-filess" are the files that Maven uses for doing stuff like fulfilling the dependencies defined in the POM file? If so, then I guess we would need to pick an arbitrary subdirectory to use for this purpose, and that is where all Maven-built outputs will go. Would that work? Is it possible to create a "manifest of files" (e.g., an environment variable that points to many different locations in the store) that we can provide to the "maven-build-system"? If we could do that, maybe we could trick Maven into treating that collection of files (residing in the store) as its repository. It would be nice if we did not have to propagate all of the dependencies into a single directory just to enable Maven to discover them. > > * Where to keep the pom-files? Are there other files we need (I've > seen "effective pom", and "maven-fragments" in other distros)? Can > or should we strip these files, like Debian seems to to with the > maven-repo-helper? If so: What do we need? can this be done in guix, > is there a maven-plugin, or =E2=80=A6? > I don't know. Does Maven expect the POM files for each project to reside in a specific location? > > * Help finding official sources, homepages, etc. for all >packages. For > many packages the data in the pom is outdated, since e.b. > codehaus.org and code.google.com are gone. For this, I'm sure it might be tough, but we will probably just have to figure it out on a case-by-case basis. I'm excited about the prospect of doing Java development with Guix. Thank you for helping to figure this complicated stuff out. I hope I can help a little, too. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlj8aJ0ACgkQ3UCaFdgi Rp1f1g//V2ZiuRbwfvEBxMIw16DkMm8ACM+onlhXZbFwblrxm9o+B2lgZW8x8Ym/ C747J+uYLEVd1zPb8V1Ak4Qt2GnGMaxEdIwjc56owl7ZtjoBkr9at6tIqBEW8YKv zQqwOPY4OyWQT0coX/XywdXI/M+hVzRTcMlwG+kboMnPvTOd+60Hzhb5sevqLORO hxTRCeuwN2KkDSubLdUwY2HPZR1mVpn7BOEchBToi8WnPKsZjZL89cHeGCsWhWzm yQXw0z8lCxGLKQ6/PO1wMEaOdSSuZBRNF30OTrbAO9+NJp8gRycA9sYJ1WHuHo71 sKr5Ve7SR9dzgNkmuh2TBbB3B732vvJvV5eGbkcwNgtGDG46mDXTYeeV8Oojm6ol SbymPDffW1m90Uj87jnLCtUZ+K88koe7GD1ZkYSGsHDwto/jzAq50ZfARqhPZ/NJ CTtDkJLT5n9FfPNVN7t8tlrtzjqNXVd3it5HX6klTOhuURxkTTnA/nzAnlxywjzi aT2C1ZE1AicC1+AfCOVIMk8Eh5QlAY2uICyy3bHaoCh/JHx2Fs9+e/DPDz5q4p1T O2fK6mrbYjDG1vuhhQ+TQcRx6iUPQSTh1auwkBhXNN6O45jSNmU7H1Eo0IxG1rny x1TzGIoZE6HzPfLxKXddKmSmUS8A1cSmvbOnpXC1c/e3NUcCjF0= =v8pw -----END PGP SIGNATURE----- --=-=-=--