Version 30

    This page is a central location for information about Maven related to building JBoss projects.

    Getting Started with Maven

     

    If you are new to Maven you might start with the Apache Maven tutorial.

    For a complete introduction to Maven you can read the Maven books from Sonatype.

     

    JBoss Users

     

    If you are already familiar with Maven and want to know how to use JBoss projects in your build go toMaven Getting Started - Users

     

    JBoss Developers

     

    If you are a JBoss developer go to Maven Getting Started - Developers

     

    Maven FAQ

     

    Getting Help

     

    The Maven community has several options for getting help, including mailing lists, wiki, and #maven IRC channel at codehaus.

     

    For questions related to using Maven for JBoss projects, you can ask for help on the #jboss irc channel on freenode, the JBoss build forum, and/or create a jira issue under the JBBUILD project.

     

    If you find a bug in Maven or in one of the core plugins, consider creating a jira issue in the appropriate Maven jira project.

     

     

    Additional Information

    Using maven to build JBoss projects

     

    A basic install of maven is required.  The installation is just downloading

    and unzipping the zip file, and then adding $MAVEN_HOME/bin to your path.

     

    Next, you should review the jboss recommended MavenSettings.  This page will help you configure maven with the appropriate settings for jboss projects.

     

    Maven can be called from the command line using the command .  For jboss projects that use the

    common parent pom configuration, this will call , which will compile your classes and test-classes, run tests, package files

    into jars, and copy these jars to a local repository where they can be used by other projects.

     

    If you just want to compile your project .

     

    A description of the common maven build phases can be found at http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html.

     

    If you want to integrate some of the maven functionality with eclipse, this can be done with the m2eclipse plugin

     

    Choosing a groupId and artifactId for your project

     

    MavenProjectNaming

     

    Using the maven repositories

    There are two repositories currently available for maven projects to use.

    1. A snapshot repository for development builds.

    2. A releases repository for release builds.

     

    More information about deploying artifacts to these repositories can be found here:

     

    MavenSnapshotRepository

     

    MavenReleaseRepository

     

    Deploying artifacts to the legacy JBoss repository

     

    As we migrate from an ant based build system to a maven based build system, it is often useful

    to deploy build artifacts to the ant repository.  In order to do this, you will need to set a system

    property called "jboss.repository.root" either on the command line or in the maven settings.xml.

    This property should point to a local checkout of the jboss repository "repository.jboss.com".

     

    From the command line:

    mvn -Djboss.repository.root=/home/me/repository.jboss.com deploy

     

    Or you can set it using a profile in maven_home/conf/settings.xml

    First add the profile:

         <profile>
          <id>local-properties</id>
          <properties>
            <!-- This must point to the cvs or svn checkout of the jboss repository -->
            <jboss.repository.root>/home/me/repository.jboss.com</jboss.repository.root>
          </properties>
        </profile>

    Then tell maven that this profile should always be active:

      <activeProfiles>
        <activeProfile>local-properties</activeProfile>
      </activeProfiles>

    Then just type "" and maven will deploy to both the jboss ant repository and the maven repository.

     

    JBoss Maven Plugins

     

    If you would like to create a new maven plugin, see CreatingMavenPlugins.

     

    JbossDeployMavenPlugin - Plugin to deploy artifacts to the non-maven repository.

     

    JbossRetroMavenPlugin - Plugin to call jbossretro to generate jdk1.4 compatible files.

     

    MavenBuildmagicThirdpartyPlugin - Plugin to build the legacy thirdparty JBossAS structure from a maven2 repository.

     

    Releasing a JBoss Project

     

    JBoss Project Release Process

     

    Status of JBoss Mavenization

     

    The MavenizationStatus page provides an overview of jboss projects and where they are in the process of mavenization.

     

    The JBBUILD project in Jira provides some additional information about issues that need to be completed.

     

    In Progress

     

    Maven Repository Upgrade Roadmap

     

    MavenITRequirements - This page is out of date and should be merged with more up to date information about the Maven repositories.

     

    Uploading third party artifacts

     

    MavenThirdPartyJars

     

    Generating a project site/JBoss.org integration

    MavenSiteGeneration

     

    JBoss (Weld) Archetypes for CDI and Java EE 6

     

    Several Weld project members are working on Maven 2 project archetypes for developing applications with Java EE 6 or CDI (Weld) running in a Servlet environment. If you are looking to develop a new enterprise web application that is build using Maven 2, this is a great way to get started.

     

    You can find more information on the Weld Archetype project page.

     

    Maven presentation notes

     

    MavenPresentationNotes