Gentoo Archives: gentoo-java

From: Kasun Gajasinghe <kasunbg@×××××.com>
To: gentoo-soc@l.g.o, gentoo-java@l.g.o
Cc: kiorky <kiorky@××××××××××.net>, Serkan Kaba <serkan@g.o>, Alistair Bush <ali_bush@g.o>
Subject: [gentoo-java] Gentoo Maven Integration - Final Report
Date: Mon, 22 Aug 2011 17:54:25
Message-Id: CADg9GQZBz5w3MiOPZsP2t-2i4CGBgjLEGb211i3WAjvB5XsNLA@mail.gmail.com
1 Hi all,
2 Here's my final report for the Gentoo Maven Integration project for
3 finishing the work under Google Summer of Code and starting move in to
4 a voluntary position.
5 The goal of this project is to build maven and it's huge number of
6 dependencies from source, and then facilitate the packagers for
7 packaging maven-based Java packages. There are two eclasses which will
8 facilitate bootstrapping maven along with building maven-based
9 packages, and packaging Maven plugins. These eclasses address some
10 fundamental issues of incompatibilities between Gentoo build system
11 and Maven build system.
12
13 There were two main goals for the project. One is building
14 maven-from-source. It is now completed and has been thoroughly tested.
15 There are around 40+ ebuilds that are direct dependencies of Maven
16 which were packaged/bumped during the project period. General users of
17 maven can have the full benefit from this package now. Please file
18 bugs at https://bugs.gentoo.org/ if you find any.
19
20 The second phase was a lengthy process and the scope wasn't fit for
21 one and half months time. But with mentors' blessing, I've made a
22 quite a big progress and was able to emerge a minimal package built
23 via native Maven.
24 Let me describe the surface details of the second phase. The idea was
25 to facilitate the packagers to package maven-based packages. This has
26 been a long-time blocker for Gentoo-Java (which extends to more than
27 3-4 years). For this phase, we needed several requirements including
28 dependency management issues and rewriting of pom.xml to match
29 Gentoo's needs. One requirement in it was the need to have a mechanism
30 to use the installed system jars instead of downloading the jars from
31 maven repos. One another is that pom needs to respect the Gentoo SLOT
32 system. Further, configuration details needed to be added to tell the
33 JDK and JRE versions needed for building (ie need to add config bits
34 to maven-compiler-plugin section in the pom). And, then it needs
35 several maven plugins to build packages. There were enormous amount of
36 plugins available that most of them need special attention separately.
37 For the second phase, the hard part is over. And, as I said, I was
38 able to emerge a minimal maven-based implementation. Maven isn't much
39 cooperative when it comes to dependency management, but our solution
40 worked well.
41
42 Along with that, the first iteration of work is complete. I'm hoping
43 to be the maintainer for Maven under Gentoo Java herd for the
44 foreseeable future. And, I'm eagerly waiting to wear the Gentoo
45 Developer hat one day. I'm interested in knowing the generic plan for
46 recruiting developers who come via Summer of Code as well.
47
48 There are few things to be done to bring the use of the Maven
49 integration to it's full potential. These are more like plug-ins to
50 the core base, and beautifying the process. I need to make new plans
51 for these with help from Java herd.
52 * There's only five maven plugins has been packaged. Have a fresh
53 look at m-surefire-p. Needs to add all other plugins.
54 * Currently, when MAVEN_PARENTPOM_UNIQUE_ID is set to rewrite
55 <parent> node of the pom, it rewrites all the poms in the project
56 including sub-modules. The most probable usecase is that rewrite the
57 parent element of the top-level/aggregator pom. The configuration bits
58 needed are already there (-w option), but the implementation needs to
59 be done.
60 * Merge the separate ebuilds of maven-2.2.1 maven-2.2.1 release in
61 to one. There are around 20+ ebuilds dedicated for this. These ebuilds
62 probably won't be needed separately so it's ok to merge these
63 together. Need to evaluate possibility of issues of having all these
64 together.
65
66 Here are some references if you are interested in getting deeper in
67 Maven in Gentoo.
68 * The wiki 1 - Developer and User guide for Maven in Gentoo -
69 https://overlays.gentoo.org/proj/java/wiki/Maven_Integration
70 * The wiki 2 - Manpage for java-maven-2 eclass -
71 http://overlays.gentoo.org/proj/java/wiki/Maven_Eclass_Manpage
72 * Repository 1 - gsoc-maven-overlay -
73 https://overlays.gentoo.org/svn/proj/java/gsoc-maven-overlay/
74 * Repository 2 - Branch for Javatoolkit -
75 http://overlays.gentoo.org/proj/java/browser/projects/javatoolkit/branches/kasun/
76 * TracBrowser view -
77 http://overlays.gentoo.org/proj/java/browser/gsoc-maven-overlay/
78
79 At the end of these thrilling three months full of excitement, I'd
80 like to remind some people who helped me vastly. Forgive me if I
81 missed someone. I was new to Gentoo, and all the help you've given was
82 really useful. Kiorky, (the original author, who I dragged in to
83 Summer of Code to be a mentor ;) ), and Serkan, my two mentors, has
84 done hell of a job to push me and this project that it is today. You
85 always had my back when I was in need.
86 I must admit that the Gentoo Java herd, and Gentoo in general was very
87 friendly and has promptly given me help and advice when I was in
88 doubt. ali_bush, Sera, Chewi, and Betelgeuse; thanks for your support
89 you have given me so far. Thanks bonsaikitten for providing server
90 space to host some source tarballs at gentooexperimental.org.
91 Appreciate the work you've done Donnie, and of course Gentoo
92 Foundation and Google!
93
94 Regards,
95 --Kasun
96
97 --
98 ~~~*******'''''''''''''*******~~~
99 Kasun Gajasinghe,
100 University of Moratuwa,
101 Sri Lanka.
102 Blog: http://blog.kasunbg.org
103 Twitter: http://twitter.com/kasunbg