| ------ |
| Deploying to Repository |
| ------ |
| |
| Deploying to Repository |
| |
| There are different ways on how you can deploy artifacts in an Archiva repository. |
| |
| * {{{#Maven} Configuring Maven to deploy to an Archiva repository}} |
| |
| * {{{#Web UI} Deploying via the Web UI Form}} |
| |
| * Configuring {Maven} to deploy to an Archiva repository |
| |
| [[1]] Create a user in Archiva to use for deployment (or use guest if you wish to deploy without a username and password) |
| |
| [[2]] The deployment user needs the Role 'Repository Manager' for each repository that you want to deploy to |
| |
| [[3]] Define the server for deployment inside your 'settings.xml', use the newly created user for authentication |
| |
| +-------------------------------------------------------------------------+ |
| <settings> |
| ... |
| <servers> |
| <server> |
| <id>archiva.internal</id> |
| <username>{archiva-deployment-user}</username> |
| <password>{archiva-deployment-pwd}</password> |
| </server> |
| <server> |
| <id>archiva.snapshots</id> |
| <username>{archiva-deployment-user}</username> |
| <password>{archiva-deployment-pwd}</password> |
| </server> |
| ... |
| </servers> |
| ... |
| </settings> |
| +-------------------------------------------------------------------------+ |
| |
| ** Deploying to Archiva using HTTP |
| |
| Configure the <<<distributionManagement>>> part of your <<<pom.xml>>> (customising the URLs as needed). |
| The <<<id>>> of the repository in <<<distributionManagement>>> <<must>> match the <<<id>>> of the <<<server>>> |
| element in <<<settings.xml>>>. |
| |
| +-------------------------------------------------------------------------+ |
| <project> |
| ... |
| <distributionManagement> |
| <repository> |
| <id>archiva.internal</id> |
| <name>Internal Release Repository</name> |
| <url>http://reposerver.mycompany.com:8080/archiva/repository/internal/</url> |
| </repository> |
| <snapshotRepository> |
| <id>archiva.snapshots</id> |
| <name>Internal Snapshot Repository</name> |
| <url>http://reposerver.mycompany.com:8080/archiva/repository/snapshots/</url> |
| </snapshotRepository> |
| </distributionManagement> |
| ... |
| </project> |
| +-------------------------------------------------------------------------+ |
| |
| ** Deploying to Archiva using WebDAV |
| |
| In some cases, you may want to use WebDAV to deploy instead of HTTP. If you find this is necessary, follow the same |
| process as for HTTP, with these additional steps: |
| |
| [[1]] Add <<<dav:>>> to the front of the deployment URLs: |
| |
| +-------------------------------------------------------------------------+ |
| <project> |
| ... |
| <distributionManagement> |
| <repository> |
| <id>archiva.internal</id> |
| <name>Internal Release Repository</name> |
| <url>dav:http://reposerver.mycompany.com:8080/archiva/repository/internal/</url> |
| </repository> |
| <snapshotRepository> |
| <id>archiva.snapshots</id> |
| <name>Internal Snapshot Repository</name> |
| <url>dav:http://reposerver.mycompany.com:8080/archiva/repository/snapshots/</url> |
| </snapshotRepository> |
| </distributionManagement> |
| ... |
| </project> |
| +-------------------------------------------------------------------------+ |
| |
| [[2]] Add a build extension to your <<<pom.xml>>> (not required in Maven 2.0.9 and above) |
| |
| +-------------------------------------------------------------------------+ |
| <project> |
| ... |
| <build> |
| <extensions> |
| <extension> |
| <groupId>org.apache.maven.wagon</groupId> |
| <artifactId>wagon-webdav</artifactId> |
| <version>1.0-beta-2</version> |
| </extension> |
| </extensions> |
| </build> |
| ... |
| </project> |
| +-------------------------------------------------------------------------+ |
| |
| ** Deploying using other protocols |
| |
| You can also deploy to the Archiva server using traditional means such as SCP, FTP, etc. For more information on these deployment |
| techniques, refer to the Maven documentation. |
| |
| Note that once the files are deployed into the location of the Archiva managed repository, they will not be detected by Archiva until the |
| next scan takes place, so the interval should be configured to a reasonably frequent setting. |
| |
| ** Deploying Third-Party Artifacts to Archiva using Maven |
| |
| You can use <<<mvn deploy:deploy-file>>> to deploy single artifacts to Archiva. Once you have the settings file in place as |
| described above, you can deploy the artifact using this type of command: |
| |
| +------+ |
| mvn deploy:deploy-file -Dfile=filename.jar -DpomFile=filename.pom |
| -DrepositoryId=archiva.internal |
| -Durl=http://repo.mycompany.com:8080/repository/internal/ |
| +------+ |
| |
| For more information, consult the {{{http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html} documentation for the |
| <<<deploy:deploy-file>>> goal}} |
| |
| If you wish to use WebDAV to deploy the file, add <<<dav:>>> to the start of the URL as in the previous instructions. |
| |
| However, on versions of Maven prior to 2.0.9, you will also need to create a file called <<<pom.xml>>> |
| in the directory from which you intend to execute "<<<mvn |
| deploy:deploy-file>>>": |
| |
| +-------+ |
| <project> |
| <modelVersion>4.0.0</modelVersion> |
| <groupId>com.example</groupId> |
| <artifactId>webdav-deploy</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> |
| +-------+ |
| |
| This pom will not be deployed with the artifact, it simply serves to make the |
| WebDAV protocol available to the build process. |
| |
| Alternately, you can save this file somewhere else, and use "<<<mvn ... -f |
| /path/to/filename>>>" to force the use of an alternate POM file. |
| |
| * Deploying via the {Web UI} Form |
| |
| The easiest way to deploy in the repository is via the Web UI form, which can be accessed in the 'Upload Artifact' section. |
| Just follow these steps: |
| |
| [[1]] Fill up the following required fields: |
| |
| * Group Id - the groupId of the artifact to be deployed. |
| |
| * Artifact Id - the artifactId of the artifact to be deployed. |
| |
| * Version - the version of the artifact to be deployed. |
| |
| * Packaging - the packaging of the artifact to be deployed. (ex. jar, war, ear, etc.) |
| |
| * Artifact File - the actual artifact to be deployed. |
| |
| [] |
| |
| [[2]] Select the repository you want to deploy to. Please note that if you do not have write permission to the repository, |
| you will not be allowed to deploy in it. |
| |
| [[3]] Now, if you want Archiva to generate a pom for the artifact, check the Generate Maven 2 POM field. |
| (Right now, only Maven 2 poms can be generated.) Alternately, supply a POM file to be deployed alongside the artifact. |
| |
| [[4]] Click Submit and a message will be displayed notifying you if the upload/deployment was successful or not. |
| |
| [] |
| |
| These are the files that will be in your repository after deployment: |
| |
| * artifact |
| |
| * POM file (if you supplied one or checked Generate Maven 2 POM) |
| |
| * maven-metadata.xml (this will be created if none exists in the artifact level yet, otherwise it will just be updated) |
| |
| * maven-metadata.xml.sha1 and maven-metadata.xml.md5 (these will be generated for newly created maven-metadata.xml files, otherwise |
| they will just be updated) |
| |
| ~~TODO: information for Maven 1, ant tasks, ivy, etc. |
| |