Apache 将Maven 1项目转换为Maven 2

Apache 将Maven 1项目转换为Maven 2,apache,maven,maven-2,Apache,Maven,Maven 2,我是Maven的新手,在一个项目中遇到了一些困难。我将把一个Maven 1项目转换成Maven 2 我从以下文件开始: xml--包含自定义构建脚本 project.properties--常规生成设置 project.xml——项目对象模型(POM)定义 据我所知,Maven 2项目我必须将这些文件移动到以下位置: xml——pom定义 (可能还有)settings.xml——本地配置 我已经通过使用命令“mvnone:convert”实现了这一点 这似乎解决了project.xml>

我是Maven的新手,在一个项目中遇到了一些困难。我将把一个Maven 1项目转换成Maven 2

我从以下文件开始:

  • xml--包含自定义构建脚本
  • project.properties--常规生成设置
  • project.xml——项目对象模型(POM)定义
据我所知,Maven 2项目我必须将这些文件移动到以下位置:

  • xml——pom定义
  • (可能还有)settings.xml——本地配置
我已经通过使用命令“mvnone:convert”实现了这一点

这似乎解决了project.xml>pom.xml的问题

然后,我在pom.xml中添加了一个project.properties(这似乎有效)

我假设剩下的就是通过maven.xml>>pom.xml的内容进行传输,这对吗

maven.xml以以下内容开头:

<project default="site_deploy"
     xmlns:ant="jelly:ant"
     xmlns:maven="jelly:maven"
     xmlns:j="jelly:core"
     xmlns:util="jelly:util">

    <ant:property environment="env"/>

并包含以下目标:

<goal name="site_deploy">
    <attainGoal name="clean"/>
    <attainGoal name="clean:clean"/>
    <ant:delete dir="${maven.src.dir}/core/target" />
    <attainGoal name="core_deploy"/>
</goal>

<goal name="core">
    <maven:maven
        descriptor="core/project.xml"
        goals="jar:install"/>
      <ant:property name="m2Dir" value="${maven.repo.local}/../../.m2/repository/app/${application.version}"/>
      <ant:property name="m1Path" value="${maven.repo.local}/${application.id}/jars/${application.id}-core-${application.version}.jar"/>
      <ant:echo message="copying jar m1 to m2 (${m1Path}) to (${m2Dir})" />
      <ant:mkdir dir="${m2Dir}"/>
      <ant:copy todir="${m2Dir}" file="${m1Path}" />
</goal>

根据我的阅读,如果没有绑定到任何构建阶段,目标可以通过直接调用在构建生命周期之外执行,第二种方法是为目标编写插件

我如何确定目标是否具有依赖性——我将如何编写插件?我主要指的是apache.org上的maven指南,但其中一些很难理解

以下是生成的pom文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>${application.id}</groupId>
  <artifactId>${application.artifact}</artifactId>
  <version>${application.version}</version>
  <name>${application.name}</name>
  <inceptionYear>2007</inceptionYear>
  <organization>
    <name>OrganizationName</name>
    <url>http://organization.url</url>
  </organization>
  <scm>
    <connection>scm:svn:connection</connection>
    <url>http://svn.organization.local/svn/trunk/application_name</url>
  </scm>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <artifactId>maven-changes-plugin</artifactId>
        <configuration>
          <xmlPath>${basedir}/xdocs/changes.xml</xmlPath>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
</project>

4.0.0
${application.id}
${application.artifact}
${application.version}
${application.name}
2007
组织名称
http://organization.url
scm:svn:连接
http://svn.organization.local/svn/trunk/application_name
maven编译器插件
1.6
1.6
maven更改插件
${basedir}/xdocs/changes.xml

“mvn one:convert”非常古老(网站上是2007年),我不希望它能工作。此外,为什么要选择Maven 2而不是Maven 3…Maven 1和Maven 2/3除了名称之外没有真正的联系。我建议手动进行迁移。您的pom.xml文件看起来怎么样?谢谢您的回复。据我所知,手动迁移似乎是我唯一的选择。你对这方面的好资源有什么建议吗?“mvn one:convert”非常古老(在网站上是2007年),我不认为它会起作用。此外,为什么要选择Maven 2而不是Maven 3…Maven 1和Maven 2/3除了名称之外没有真正的联系。我建议手动进行迁移。您的pom.xml文件看起来怎么样?谢谢您的回复。据我所知,手动迁移似乎是我唯一的选择。你对这方面的好资源有什么建议吗?