This page contains out of date information.
Please refer to one of the following pages for more information about the JBoss.org Maven repositories
Maven Getting Started - Developers
The maven releases repository contains jboss project artifacts (jars, zips, poms, etc) that have been tagged and released. It also contains thirdparty artifacts that are used in jboss builds.
This repository is located at http://repository.jboss.org/maven2
Uploading artifacts to the repository
The maven repository is backed by an svn repository is located at the following URL.
https://svn.jboss.org/repos/repository.jboss.org/maven2
Uploading with Wagon-SCM
The prefered method for uploading artifacts to the repository is to use Maven Wagon SCM. This allows Maven to deploy directly to the backing svn repository.
Maven does not provide the necessary libraries to deploy to svn by default. So the first step to using this system is to make sure that the appropriate extensions are loaded. Your POM should include something like this.
<project> ... <build> <!-- To allow to deploy releases in SVN --> <extensions> <extension> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-scm</artifactId> <version>1.0-beta-6</version> </extension> <extension> <groupId>org.apache.maven.scm</groupId> <artifactId>maven-scm-manager-plexus</artifactId> <version>1.0</version> </extension> <extension> <groupId>org.apache.maven.scm</groupId> <artifactId>maven-scm-provider-svnexe</artifactId> <version>1.0</version> </extension> </extensions> ... </build> ... </project>
Next the distributionManagement section of the POM must be configured with the correct deployment URL.
<project> ... <distributionManagement> <repository> <id>jboss-releases</id> <name>JBoss Release Repository</name> <url>scm:svn:https://svn.jboss.org/repos/repository.jboss.org/maven2</url> </repository> ... </distributionManagement> ... </project>
The build extension and distributionManagement configuration is included in the jboss-parent POM version 5-beta-4 or above. This allows your project POM to automatically inherit the above configuration.
<project> ... <parent> <groupId>org.jboss</groupId> <artifactId>jboss-parent</artifactId> <version>5-beta-4</version> </parent> ... </project>
The next step is to verify that Maven has access to your SVN credentials to commit the new files to the repository. Your maven settings file (~/.m2/settings.xml) should include the correct server configuration.
<server> <id>jboss-releases</id> <username>my-jboss.org-username</username> <password>password</password> </server>
Once this configuration is complete you can deploy the project by running the maven deploy command.
mvn deploy
After the files are deployed it will take some time for the files to appear in the public repository. Please allow up to 1 hour for the public repository to be updated with the changes.
The deployment can also be done as part of the Maven release process.
Note: this method requires that the command line svn client is installed and available to Maven (via the system PATH).
Manually Committing Files
Another option for deploying project files is to checkout all or part of the svn repository, use the standard file system deployment protocol, and then commit the new files to SVN using a command line or GUI client svn application.
Checking out the entire repository can be very time consuming because the repository contains a large amount of data. So in most cases it is easier to check out only the relevant projects.
First, checkout only the root folder.
svn co -N https://svn.jboss.org/repository.jboss.org/maven2 /path/to/checkout
Then you can add one folder at a time as you traverse the branch of the tree you are interested in a similar fashion.
cd /path/to/checkout svn update -N org cd org svn update -N jboss
At any point you can leave off the -N flag to checkout all the files in a branch.
Another option is to use svn mkdir:
svn mkdir https://svn.jboss.org/repos/repository.jboss.org/maven2/org/newgroup
Note that this command brings up an editor in which you have to provide commit log entry.
After that, you can use one of aforementioned means to check out this new dir.
Once you have the required directory structure in place, you will need to configure you POM's distributionManagement section to deploy to the root of the checked out repository.
<distributionManagement> <repository> <id>jboss-releases</id> <url>file:///path/to/repo/checkout</url> </repository> </distributionManagement>
You can also deploy to the repository without changing your POM files using the option altDeploymentRepository of the maven deploy plugin.
mvn deploy -DaltDeploymentRepository=jboss-releases::default::file:///path/to/repo/checkout
After running mvn deploy or maven release:perform, the files will be copied to the local repository checkout. When this is finished cd into the root project directory in the repository and commit the files.
cd /path/to/repo/checkout/org/foo svn ci . -m "Release project foo version x.y.z.Beta1"
Uploading Via Webdav
This method is not recommended because it causes files to be uploaded with incorrect MIME types. This method may be disabled at some point in the future.
dav:https://svn.jboss.org/repos/repository.jboss.org/maven2
Uploading With Wagon-SVN
This method is not recommended because it causes files to be uploaded with incorrect MIME types.
More information can be found on the wagon svn site.
Deploying non-maven based projects
In this case the maven deploy plugin can be used to deploy a jar (or other artifact) and it's associated pom file. The first step is to create a valid pom file, or edit an existing pom file to meet the JBoss requirements. This means that the pom should be valid and include appropriate license information. If you need to create the pom file from scratch, you can use a Template.
The next step is to verify your Maven Settings. Make sure that you have a <server> tag which contains your svn username and password. The value of the <id> field is passed as a parameter to the maven deploy plugin to enable the plugin to write to svn.
mvn deploy:deploy-file -Dfile=myfile.jar -DpomFile=myfile-pom.xml -Durl=dav:https://svn.jboss.org/repos/repository.jboss.org/maven2 -DrepositoryId=jboss-releases
Note: You should not use the automatic pom generation capability of the deploy plugin because the generated pom does not include the license information that is needed for many JBoss builds.
Deploying buildmagic based projects
The maven-buildmagic-thirdparty-plugin can be used to read a component-info.xml file and deploy the project artifacts to a maven repository. Here is an example of how to use it:
mvn org.jboss.maven.plugins:maven-buildmagic-thirdparty-plugin:maven-deploy -Durl=file:///path/to/local/repo/checkout -DcomponentDir=path/to/directory/containing/component-info/file
Adding jars manually
Jars can be manually added to the repository as long as you are careful that the path matches the groupId and artifactId in the POM. If you add files manually, you will also need to generate the appropriate checksums. How to let Maven do this for you is described here.
The following bash script can be used on Linux to generate the checksums.
#!/bin/bash # Proper header for a Bash script if [ -n "$1" ] then root_dir=$1 else root_dir=. fi echo $root_dir find $root_dir -name '*.pom' | while read FILE do echo $FILE checksum=`md5sum $FILE` echo -n ${checksum%% *} > $FILE.md5 checksum=`sha1sum $FILE` echo -n ${checksum%% *} > $FILE.sha1 done find $root_dir -name '*.jar' | while read FILE do echo $FILE checksum=`md5sum $FILE` echo -n ${checksum%% *} > $FILE.md5 checksum=`sha1sum $FILE` echo -n ${checksum%% *} > $FILE.sha1 done
The following batch file can be used on Windows (only supports generating checksums for one file at a time):
@echo off :: :: A simple script that generates Apache-style md5 and sha1 checksum :: files for the specified files. :: :: NOTE: This batch file requires md5sum, sha1sum, and gawk to be in the :: PATH. Win32 binaries can be obtained from :: http://gnuwin32.sourceforge.net/. :: :: $Id: gensums.cmd 4432 2007-04-23 20:15:41Z ispringer $ :: :loop if "%1"=="" goto done echo Processing %1... echo Writing MD5 sum to %1.md5... md5sum %1 | gawk "{print $1}" >%1.md5 echo Writing SHA1 sum to %1.sha1... sha1sum %1 | gawk "{print $1}" >%1.sha1 shift goto loop :done
Referenced by:
Comments