Hello Cédric,
Procedure is described here.
My experience from running a project at Codehaus is that once you have
set up to do the deploy to the Codehaus central repository everything
runs very smoothly, but doing that initial set up is a bit of a pain,
but a one off one. The position for TestNG is that there will be an
extra one-off step of getting coordination with Maven Central.
Taking Gant as a example: I do not use Maven, the build uses Gant
itself(*) (with an Ant bootstrap), all Maven interaction activity is
handled by the Maven Ant task (currently 2.0.10), the jar for which has
to be in the project (all other dependencies are then handled via the
usual Maven dependency system). The task presents "install" and
"deploy" targets which basically do all the work of installing to the
local repository and deploying to the remote repository respectively.
So Step 1 is to make a Maven structure repository (at
http://repository.beust.com, say). Actually you probably need to set up
a main repository and a snapshots repository
(http://snapshot-repository.beust.com, say) so that snapshots can be
handled as well as releases. Step 2 is to amend the TestNG Ant build to
make use of the Maven Ant task to deploy to those repositories --
releases go to the main repository, snapshots go to the snapshots
repository (this is handled automatically by having -SNAPSHOTS appended
to the version number). There is then a Step 3 but by now everyone can
use TestNG within the Maven and Ivy dependency handling by adding this
repository to their search list. Step 3 is to get the release
repository on the automatic integration list -- this will be more
bureaucratic.
TestNG is sufficiently high-profile and important that it would be
unseemly for the Maven people to refuse a properly presented request for
automatic integration of the TestNG release repository with
repo1.maven.org.
>
An off-the-wall alternative is to switch TestNG to being a Codehaus
project and then you get all the repository infrastructure for free.
You still have to do Step 2 above but the analogue of Step 1 is already
done and there is no need for Step 3.
For Gant, I just do "gant deployMaven" and 10 mins later it is all done
with 3 different versions built and uploaded, ready for people to use.
Using Gradle for the build system makes things just as easy. I am
assuming that switching TestNG to be a Maven built project is not an
option, but then that is no problem, the Maven Ant task suffices for use
with Ant, Gant or Gradle. There does have to be a POM though. Gradle
generates then automatically. With Ant and Gant you need to have a
pom.xml.in that you stream edit for version numbers before doing the
install or deploy. A one-off set up and then it Just Works (tm).
(*) Gant using Gant for the build is like TestNG using TestNG for its
unit tests, necessary :-)
--
Russel.
=============================================================================
Dr Russel Winder Partner
xmpp: rus...@russel.org.uk
Concertant LLP t: +44 20 7585 2200, +44 20 7193 9203
41 Buckmaster Road, f: +44 8700 516 084 voip: sip:russel...@ekiga.net
London SW11 1EN, UK m: +44 7770 465 077 skype: russel_winder