[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