unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Julien Lepiller <julien@lepiller.eu>
To: 42100@debbugs.gnu.org
Subject: [bug#42100] [PATCH] Add maven-build-system.
Date: Mon, 6 Jul 2020 21:09:27 +0200	[thread overview]
Message-ID: <20200706210857.6b401c03@tachikoma.lepiller.eu> (raw)
In-Reply-To: <20200628034135.2c7b9d9b@tachikoma.lepiller.eu>

Friendly ping :)

If anyone wants to review, but needs more time, please say so.
Otherwise, I'll push next week!

Le Sun, 28 Jun 2020 03:41:35 +0200,
Julien Lepiller <julien@lepiller.eu> a écrit :

> Hi Guix!
> 
> This patch series adds the maven-build-system, at last! You can find
> the patches on the wip-maven-build-system branch of my repository, at
> https://framagit.org/tyreunom/guix/-/tree/wip-maven-build-system
> 
> I haven't sent the patches on this mailing because there are ~100 of
> them. If you prefer, I'll send the series with git send-patch.
> 
> Here is a summary of the changes:
> 
> guix: java-utils: Add Maven-related phases.
> 
> This patch adds some functionalities to guix/build/java-utils.scm, in
> particular the install-from-pom and install-pom-file functions that
> are phases you can use instead of the install phase. As their name
> suggests, they install a package from a pom.xml file to a maven
> repository directory structure in lib/m2. install-pom-file only
> installs a single pom.xml file, instead of the file and its jar.
> 
> gnu: java-asm: Remove dependency on bnd libraries.
> ...
> gnu: java-jarjar: unbundle maven-plugin-api.
> 
> This small series of patches improves the bootstrap of java-junit by
> not relying on bundled libraries (binaries), by enabling tests in
> junit and by reducing the number of dependencies that must be built
> before junit. Junit is now fully bootstrapped.
> 
> gnu: java-junit: Install from pom file.
> 
> This patch converts junit and its dependencies to the maven repository
> structure. It also takes care of changing junit's dependents that had
> a hardcoded path to the junit jar file.
> 
> gnu: Add apache-parent-pom-13.
> ...
> gnu: Add maven-components-parent-pom-21.
> 
> This series adds many parent pom packages to a new file,
> maven-parent-pom.scm.  A parent pom is a single pom.xml file that
> contains information about a project. Actual packages can then
> reference these files to inherit some or all of these information.
> 
> gnu: java-commons-lang3: Update to 3.9.
> ...
> gnu: maven: Install from pom file.
> 
> These patches update some dependencies of maven and the maven build
> system, and convert them so they are installed in the maven repository
> structure.
> 
> gnu: maven-shared-utils: Fix /bin/sh invocation.
> gnu: java-modello-core: Propagate inputs.
> 
> These two patches implement fixes that are required later on.
> 
> gnu: Add java-plexus-digest.
> ...
> gnu: Add maven-jar-plugin.
> 
> This patch series adds more packages that are maven plugins or their
> dependencies.  Maven doesn't do anything by itself, it's simply a
> dependency/lifecycle manager.  It requires plugins to actually do
> things such as compiling, creating a jar archive, installing, testing,
> etc... This is what these patches implement.
> 
> guix: Add maven-build-system.
> 
> The actual commit that adds the maven-build-system :)
> 
> In the end, the maven-build-system only has the very basic plugins by
> default, but it is able to compile, test and install a simple hello
> world example application, generated by maven (see test.scm attached).
> 
> Next step is building the maven-plugin-plugin, which is the plugin
> that builds other plugins. Currently the plugins are built with a
> custom plugin.xml generator that uses a buggy java parser, so I don't
> want to rely on it for other plugins. Note that we can't use the
> maven-plugin-plugin to build any of the current plugins, since they
> are needed to build themselves...
> 
> I also noticed that our maven is acting weird wrt lifecycles: it seems
> to be doing some test-related work during the build step, and rebuilds
> in the test and install steps. This is weird, but I'm not sure how to
> fix. Re-building maven with the maven-build-system might give as a
> better version of maven. I don't really want to investigate that now,
> that's why I'm sending the patch series anyway.
> 
> Hope you enjoy!





  reply	other threads:[~2020-07-06 19:10 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-28  1:41 [bug#42100] [PATCH] Add maven-build-system Julien Lepiller
2020-07-06 19:09 ` Julien Lepiller [this message]
2020-07-17  2:24   ` Julien Lepiller
2020-07-17  2:25   ` bug#42100: " Julien Lepiller

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

  List information: https://guix.gnu.org/

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

  git send-email \
    --in-reply-to=20200706210857.6b401c03@tachikoma.lepiller.eu \
    --to=julien@lepiller.eu \
    --cc=42100@debbugs.gnu.org \
    /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 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).