如果您将项目从 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配置元素覆盖。
有关详细信息,请参阅目标参考。