all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Progress and todos for Jave maven
@ 2017-04-13 11:28 Hartmut Goebel
  2017-04-16 15:38 ` Björn Höfling
  0 siblings, 1 reply; 4+ messages in thread
From: Hartmut Goebel @ 2017-04-13 11:28 UTC (permalink / raw)
  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 :-)
 

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!

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-04-18 16:47 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-13 11:28 Progress and todos for Jave maven Hartmut Goebel
2017-04-16 15:38 ` Björn Höfling
2017-04-16 15:43   ` Ricardo Wurmus
2017-04-18 16:47   ` Hartmut Goebel

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.