我是 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>