jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ian Brandt <...@ianbrandt.com>
Subject Re: Publishing to Maven Central
Date Wed, 18 Jan 2012 05:04:18 GMT

On Jan 17, 2012, at 4:10 PM, sebb wrote:

> IMO Maven works well for some projects, particularly single component
> (module) builds.
> Multi-module Maven does not work as well; in particular the test phase
> requires the project to be (re)installed first.

Understood.  I like Steve Ebersole's writeup of such issues he encountered with Hibernate
[1].  On the other hand I maintain a 20 module Maven build at my company, having converted
it from Ant a few years back, and have no regrets and minimal issues.

> JMeter dependencies don't tend to change very frequently, so the
> question is: is the effort required to introduce Ivy/MAT worth it?

Good question, I can only offer anecdote.

Before moving my company's build to Maven I first tried the Maven Ant Tasks and then Ivy.
 The situation was that we had a large (50+) and frequently changing list of direct and transient
dependencies.  With no way to comprehend all the relationships it was proving a maintenance
nightmare to not use a dependency manager.  MAT proved lacking in needed functionality at
the time, so that attempt was short lived.  With Ivy I can't remember the specifics, but I
remember hitting enough issues and struggling with the documentation such that one day I just
gave up and switched the entire build to Maven.  I'd have to say that for either MAT or Ivy
to be worth it they'd need to have matured since then.  It's encouraging to see there is now
Sonatype and Apache documentation on publishing to Maven repositories with them: [2], [3].

If JMeter has a small and unchanging set of dependencies then the situation is different.
 I'd only add that with any dependency management system the correctness of the declared relationships
is everything, and with Maven you generally get one chance to get it right when publishing
a given version to Central.  Tomcat has fewer external dependencies than JMeter I believe,
and yet in my experience the Tomcat POMs aren't always right.  I'm proposing that MAT or Ivy
might lead to higher quality POMs being published by JMeter because the exact same dependency
information would be used to compile and test beforehand.

> I assume that the main build and release procedures would be unaffected?
> Is that correct?

I've looked oven the Ant build, the README, and the Release Creation document on the Wiki
[4].  Nothing jumps out as likely to be affected by MAT or Ivy that wouldn't already be involved
with publishing to Maven in general [3].

> Does Ivy generate source jars? Javadoc jars?
> If so, what configuration is needed?
> Can the config be re-used for the compilation phase?


No, that'd still all be up to the traditional Ant tasks.  MAT or Ivy would reference these
Jars however, and publish them along with the main artifacts.  See Attaching Multiple Artifacts
in the MAT documentation [5], or the examples in these how-to's for Ivy: [6], [7].

Ian


[1] https://community.jboss.org/wiki/GradleWhy
[2] https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide#SonatypeOSSMavenRepositoryUsageGuide-7c.DeploySnapshotsandStageReleaseswithAnt
[3] http://www.apache.org/dev/publishing-maven-artifacts.html#ant
[4] http://wiki.apache.org/jmeter/ReleaseCreation
[5] http://maven.apache.org/ant-tasks/examples/install-deploy.html
[6] http://draconianoverlord.com/2010/07/18/publishing-to-maven-repos-with-ivy.html
[7] http://stackoverflow.com/a/5115447
Mime
View raw message