couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Curt Arnold <carn...@apache.org>
Subject Apache Maven/Maven repo (Re: Dependencies in SVN)
Date Sat, 08 Aug 2009 03:46:05 GMT

On Aug 7, 2009, at 12:22 AM, Noah Slater wrote:

> On Fri, Aug 07, 2009 at 12:10:45AM -0500, Curt Arnold wrote:
>> Apache Maven is implemented in Java, but the Maven master and its
>> mirrors aren't limited to delivering Java byte code and could deliver
>> source or beam files.
>
> Interesting.
>
>> The make file could download the dependencies using curl or wget.
>

or with any other http client in addition to Maven and other Maven  
repo aware tools like Ivy (http://ant.apache.org/ivy).


> Hmm, that is an interesting proposal.
>
>> If mochiweb, ibrowse and erlang_auth have formal releases, a project
>> descriptor could be prepared for them and the descriptor and the  
>> release
>> could be uploaded to the master repo.  If they don't, we could engage
>> with them to coordinate releases.
>
> Do you mean via Maven repository?
>
> Thanks,
>

The guide to publishing things to the central repo is http://maven.apache.org/guides/mini/guide-central-repository-upload.html
There is an plugin for Erlang development tasks at http://sourceforge.net/projects/maven-erlang/

.  Article at http://www.trapexit.org/Maven_and_Erlang

The ideal solution would be to have the original maintainers publish  
their releases so they are sync'd to the central repo.  If not, it is  
possible for a third-party to package the software, but better if the  
project does it itself.

The Maven search strategy is multi-layered and I may have missed some  
steps, but the general idea is:

Check $M2_HOME/conf/settings.xml and ${user.home}/.m2/settings.xml for  
configuration settings like location of local repository directory and  
remote repository URL.

build a path from the local repository directory, the groupID  
(org.apache.foobar), artifactID (foobar), version and package type  
(.jar, .tar.gz, deb, etc) and see if the artifact is already in the  
local repo.  A typical path would be ~/.m2/repository/ 
org.apache.foobar/foobar/1.0/foobar-1.0-src.jar.

If not found locally, check the configured repos, then central repo (http://repo1.maven.org

) or a mirror declared in settings.xml.

To work with an unreleased version, you'd download the source and then  
run "mvn install" which would install 1.5-SNAPSHOT into your local  
repo if the upcoming version number was 1.5.  If your project had an  
explict dependency on 1.4 or whatever, you'd need to change it in your  
project description or override it.

I'll try to take the Erlang plugin for a ride tomorrow and report back.


Mime
View raw message