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.

Reply via email to