Deploying With Webdav

As of Maven 2.0.9 it is no longer nessesary to add the build extension to your project.

The simplest way to enable webdav deployment is to add a build extension to your project:

<project>
   ...
   <build>
      ...
      <extensions>
         <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-webdav</artifactId>
            <version>1.0-beta-2</version>
         </extension>
      </extensions>
   </build>
...
</project>

To use mvn deploy:deploy-file with webdav, save a simple pom.xml containing wagon-webdav as a build extension in the directory from which you execute 'mvn'. (You may need to rename the pom for the project you are deploying.)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.example</groupId>
   <artifactId>webdav-deploy-pom</artifactId>
   <packaging>pom</packaging>
   <version>1</version>
   <name>Webdav Deployment POM</name>

   <build>
      <extensions>
         <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-webdav</artifactId>
            <version>1.0-beta-2</version>
         </extension>
      </extensions>
   </build>

</project>

Example:

mvn deploy:deploy-file -Dfile=example.jar -DpomFile=example.pom -DrepositoryId=myrepo -Durl=dav:http://localhost:8080/archiva/repository/myrepo

You can also point Maven at an alternate pom file with -f on the command line.

Example:

mvn deploy:deploy-file -f /path/to/webdav-deploy-pom.xml -Dfile=example.jar -DpomFile=example.pom -DrepositoryId=myrepo -Durl=dav:http://localhost:8080/archiva/repository/myrepo

Alternate method, modifying the Maven distribution

Given that maven 2 doesn't currently include the wagon-webdav plug-in in its core, here's how to add it:

svn co http://svn.apache.org/repos/asf/maven/components/branches/maven-2.0.x

add to maven-2.0.x/pom.xml

<dependency>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-webdav</artifactId>
        <version>1.0-beta-1</version>
</dependency>

add to maven-2.0.x/maven-core/pom.xml

<dependency>
      <groupId>org.apache.maven.wagon</groupId>
      <artifactId>wagon-webdav</artifactId>
      <scope>runtime</scope>
</dependency>

then...

mvn clean install
cd maven-core
mvn assembly:assembly
cd target

and finally install your new maven-2.0.5-SNAPSHOT-bin...

The examples from the guide to deploying 3rd party jars will now work in the following context:

mvn deploy:deploy-file -Durl=dav:http://my.maven.repo/ -DrepositoryId=id.from.settings.xml -DpomFile=whatever.pom -Dfile=whatever.jar