如果您将项目从 Maven 1 移动到 Maven 2,您可以从 Maven One 插件中获得一些帮助。它可以将您项目的project.xml和project.properties转换为pom.xml。为此,请切换到project.xml文件所在的目录并在命令行上发出以下命令:
mvn one:convert
这个目标使用maven-model-converter不仅可以转换您的项目模型,它还具有用于许多插件和转换器的配置的重定位器。因此,如果您有一些 Maven 1 jar-plugin 的配置属性,转换器将尝试在您的新pom.xml中为 Maven 2 jar-plugin 创建合适的配置部分。您需要在pom.xml创建后查看插件的版本,因为版本可能与 Maven 1 插件的版本不同。
要使用 Maven 2.x 打包 Maven 1.x 插件,您需要在构建部分包含 Maven One 插件并使用maven-one-plugin的打包。像这样:
<project>
...
<packaging>maven-one-plugin</packaging>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-one-plugin</artifactId>
<version>1.3</version>
<extensions>true</extensions>
</plugin>
...
</plugins>
</build>
...
</project>
要将您的工件安装到本地 Maven 1.x 存储库中,您可以使用<executions>将生命周期绑定添加到您的 POM :
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-one-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<goals>
<goal>install-maven-one-repository</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
...
</project>
注意:在构建 Maven 1.x 插件的情况下,插件部分可以与上面的部分共享。
这将从~/build.properties读取本地存储库位置,默认为~/.maven/repository。
要将您的工件部署到额外的远程 Maven 1.x 存储库中,您需要将生命周期绑定添加到您的 POM。此配置会将您的工件部署到 Apache 的 Maven 1.x 存储库:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-one-plugin</artifactId>
<version>1.3</version>
<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>
这不会从 Maven 1.x 属性中读取任何设置,因此 URL 是必需的。
如果您在settings.xml文件中配置服务器设置,请使用mavenOneRemoteRepository的 ID 。这可以使用remoteRepositoryId配置元素覆盖。
有关详细信息,请参阅目标参考。