Usage

Maven 1 to Maven 2 conversion

If you are moving a project from Maven 1 to Maven 2, you can get some help from the Maven One plugin. It can convert your project's project.xml and project.properties into a pom.xml . To do this, change to the directory where your project.xml file is located and issue this command on the command line:

mvn one:convert

This goal uses maven-model-converter which not only converts your project model, it also has relocators for many plugins and converters for their configurations. So if you had some configuration properties for the Maven 1 jar-plugin, a converter will try to create a suitable configuration section for the Maven 2 jar-plugin inside your new pom.xml . You need to review the versions for the plugins in pom.xml after it has been created, as the versions might not be the same as for the Maven 1 plugins.

Maven 1.x Plugin Packaging

To package a Maven 1.x plugin using Maven 2.x, you need to include the Maven One plugin in the build section and use a packaging of maven-one-plugin . Like this:

<project>
  ...
  <packaging>maven-one-plugin</packaging>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-one-plugin</artifactId>
        <extensions>true</extensions>
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>

Maven 1.x Local Repository Installation

To have your artifact installed into a local Maven 1.x repository, you add a lifecycle binding to your POM using <executions> :

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-one-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>install-maven-one-repository</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>

Note: The plugin section can be shared with the one above in the case of building a Maven 1.x plugin.

This will read the local repository location from ~/build.properties , defaulting to ~/.maven/repository .

Maven 1.x Remote Repository Deployment

To have your artifact deployed into an additional remote Maven 1.x repository, you need to add a lifecycle binding to your POM. This configuration will deploy your artifact to the Maven 1.x repository at Apache:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-one-plugin</artifactId>
        <executions>
          <execution>
            <configuration>
              <remoteRepositoryUrl>scp://people.apache.org/repository</remoteRepositoryUrl>
            </configuration>
            <goals>
              <goal>deploy-maven-one-repository</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>

This will not read any settings from the Maven 1.x properties, so the URL is required.

If you configure server settings in your settings.xml file, use the ID of mavenOneRemoteRepository . This can be overridden using the remoteRepositoryId configuration element.

For more information, see the Goal Reference .