[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Maven in Debian [was: Re: Reg. Apache Excalibur]

On Fri, August 24, 2007 10:27 am, Trygve Laugstøl wrote:
> For anything requiring Maven to build you can use the maven-ant-helper
> package that is in the pkg-java Subversion repository. It includes an
> Ant build.xml that mimics the normal Maven build process.
> The problem with that build.xml is that it can only build simple stuff,
> not more complicated stuff like Maven plugins. Each Maven plugin is
> processed by the "Maven Plugin Plugin" and other tools to generate the
> proper XML files that will be included into the JAR.
> PS: download the proper jar file from repo1.maven.org/maven2 and compare
> the contents of the files.
> The strategy that I'm fairly sure that has to be followed is to use
> Michael's package to rebuild the plugins and once a full set of plugins
> is built Maven can be rebuilt with itself.

I'm not sure if you meant Michael's maven2-binary package, or the
DFSG-free one being prepared for main? I'm assuming you mean the DFSG-free

Just to summarise your strategy to check my understanding (excuse me if
this is obvious to everyone else):

  *  Once the maven2 package is ready, we can upload it to main - all of
its build-depends and runtime-depends are already in main. Users will
then be able to "apt-get install maven2" and have a working system. It
is perfectly acceptable for Maven to download extra software when it is
run by a user.

  *  It has been proposed that we create a Debian-specific Maven plugin,
to handle Debian builds of software that is built by Maven. This will
handle details such as the mapping of required Jars to
/usr/share/java/*. I'm not sure how it will all work, but it sounds a
good idea!

  *  If we want to use Maven during the build of other Debian packages
then we must make sure nothing is downloaded. Therefore we must package
any plugins that might be used *when building a Debian package*. This
will not be *all* of the Maven plugins (e.g. there does not seem to be a
need to package the "changelog" or "eclipse" plugin). (We may also have
to package other non-plugin stuff, of course).

  *  Although these plugins could be packaged using ant and some [as yet
unspecified] processing to generate the XML config files, it would be
much easier to use Maven to generate them.

  *  The Debian-plugin and other essential plugins will all build-depend
on eachother (and on themselves). This circular dependency isn't nice,
but is permissible as they will all be arch-independent (keeps the
buildds happy). The only consideration is that we would have to upload
all the packages at the same time (please correct me if I'm wrong here).

  *  During development we could use any maven implementation to build the
plugin packages. But by the time we upload we must be able to rebuild
them all using only the packages we are uploading (plus any packages
that are already in Debian main, which will include maven2). A classic
bootstrapping approach.

Any comments on this? I guess we should have some sort of plan before we
start packaging...  Does this sound like the way to go, or should we try
to build them using ant + something to generate the XML files?

Reply to: