将Maven 1项目转换为Maven 2

时间:2012-10-05 20:43:38

标签: apache maven maven-2

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

我开始使用这些文件:

  • maven.xml - 包含自定义构建脚本
  • project.properties - 常规构建设置
  • project.xml - 项目对象模型(POM)定义

根据我的理解,Maven 2项目我必须将这些文件移到这些文件中:

  • pom.xml - POM定义
  • (可能)settings.xml - 本地配置

我已经通过使用命令'mvn one: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>

0 个答案:

没有答案