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>
4

0 回答 0