all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Chris Marusich <cmmarusich@gmail.com>
To: Hartmut Goebel <h.goebel@crazy-compilers.com>
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: Need help from Java-developers
Date: Sun, 23 Apr 2017 01:41:01 -0700	[thread overview]
Message-ID: <8760hvms82.fsf@gmail.com> (raw)
In-Reply-To: <58EF611E.6060404@crazy-compilers.com> (Hartmut Goebel's message of "Thu, 13 Apr 2017 13:29:34 +0200")

[-- Attachment #1: Type: text/plain, Size: 4334 bytes --]


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 <h.goebel@crazy-compilers.com> 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
>     <https://wiki.debian.org/Java/MavenRepoSpec>
>     <https://wiki.debian.org/Java/MavenRepoHelper> and
>     <https://packages.debian.org/jessie/maven-repo-helper>
>

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 …?
>

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.

-- 
Chris

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

  reply	other threads:[~2017-04-23  8:41 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-13 11:29 Need help from Java-developers Hartmut Goebel
2017-04-23  8:41 ` Chris Marusich [this message]
2017-04-23 22:57   ` Chris Marusich
2017-04-25 19:28     ` JARs and reference scanning (was: Need help from Java-developers) Hartmut Goebel
2017-04-26  5:34       ` JARs and reference scanning Chris Marusich
2017-04-26 11:53         ` store reference detection (was Re: JARs and reference scanning) Thomas Danckaert
2017-04-26 19:31           ` Maxim Cournoyer
2017-04-27 13:46           ` Ludovic Courtès
2017-04-27 14:14             ` store reference detection Thomas Danckaert
2017-04-27 17:46             ` store reference detection (was Re: JARs and reference scanning) Hartmut Goebel
2017-05-02 12:43               ` Ludovic Courtès
2017-05-07 12:48                 ` Hartmut Goebel
2017-05-07 20:23                   ` Chris Marusich
2017-05-08  7:06                     ` Ricardo Wurmus
2017-05-08 14:11                       ` Ludovic Courtès
2017-05-11  8:41                       ` Chris Marusich
2017-05-11 11:27                         ` Ricardo Wurmus
2017-05-12  6:54                           ` Chris Marusich
2017-05-12  8:21                             ` Ricardo Wurmus
2017-05-12  9:35                         ` Hartmut Goebel
2017-05-12 18:22                           ` Mark H Weaver
2017-05-12 20:05                             ` Hartmut Goebel
2017-05-12 21:24                               ` Mark H Weaver
2017-05-12  6:18                   ` Mark H Weaver
2017-05-12  8:19                     ` Chris Marusich
2017-05-12  9:46                       ` store reference detection Hartmut Goebel
2017-05-12 17:39                       ` store reference detection (was Re: JARs and reference scanning) Mark H Weaver
2017-05-12 18:27                         ` Leo Famulari
2017-05-12 19:54                         ` Hartmut Goebel
2017-05-12 21:51                           ` Mark H Weaver
2017-05-13  7:15                             ` Hartmut Goebel
2017-05-23  7:29                               ` Chris Marusich
2017-04-25  8:44   ` Need help from Java-developers Ricardo Wurmus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8760hvms82.fsf@gmail.com \
    --to=cmmarusich@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=h.goebel@crazy-compilers.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.