[OSGeo-Discuss] Common Maven Repository
Jody Garnett
jgarnett at refractions.net
Fri Jul 18 14:01:58 PDT 2008
Frank Warmerdam wrote:
> Perhaps you could provide some more general information on what role
> Maven plays, and what sort of resources and complexity would be
> involved in OSGeo doing what you suggest.
Maven is a build tool that takes a different approach than Ant (or
Make). Rather than document a series of steps saying how to "build" or
"compile" it provides a description of the project (saying the java
source code is here, the documentation is here, the developer email
address is this etc...) in the form a "pom" file (for project object model).
Maven then makes uses of a whole bunch of scripts (downloadable from the
web at runtime) to perform tasks based on the description; tasks like
compiling, building javadocs, running tests, creating a jar and so on.
It can even make a website publishing all the reports...
Here are some reports for gt-main:
- http://maven.geotools.fr/reports/modules/library/main/project-reports.html
One of the most important things a pom file says is what other projects
the code needs; these are provided in the form of dependencies...here is
part of the GeoTools pom.xml:
> <dependency>
> <groupId>com.vividsolutions</groupId>
> <artifactId>jts</artifactId>
> <version>1.9</version>
> </dependency>
This block of xml says that geotools needs JTS version 1.9 in order to
compile and run. When building maven will download JTS from a remote
repository (the website Paul would like to set up) and store the result
in a local repository on the users hard drive.
Here are the dependencies for gt-main:
- http://maven.geotools.fr/reports/modules/library/main/dependencies.html
So a maven repository is a like an FTP site for downloading artifacts
combined with a bunch of pom.xml xml files document what versions are
available and how the artifacts fit together.
There are websites devoted to finding this stuff out:
- http://maven.ozacc.com/
- http://mvnrepository.com/
These websites let you search repositories for published java projects
and provide you the xml fragment needed to depend on them.
Here is a repository we maintain for GeoTools development, we have a
mirror in france:
- http://lists.refractions.net/m2/
- http://maven.geotools.fr/repository/
> Generally speaking, I think we would be ok with doing this if it was
> useful for the various Java projects but someone would need to step
> forward to do the work.
This would be very useful.
> Such a service would be setup and administered by SAC - the OSGeo
> System Administration Committee.
We have set ours up as a webdav folder; maven has the ability to
"deploy" jars from the various development teams to a webdav folder. It
can also deploy artifacts via various other protocols - here is a list:
- http://maven.apache.org/wagon/
There are several tools you can use to manage a repository - here is a list:
- http://maven.apache.org/repository-management.html
We have so far not needed to use a tool; a simple webdav folder has been
sufficient.
Jody
More information about the Discuss
mailing list