在ant中使用mvn-ant-tasks时如何使用skipTests选项

时间:2015-10-16 11:39:17

标签: maven ant

我在构建文件中使用mvn-ant-task来清理和安装Maven项目。

以下是我做的配置

<project name="maven-project"
     default="default"
     xmlns:artifact="antlib:org.apache.maven.artifact.ant">

在目标中,我添加了类似的东西

<target name="CleanInstall">
    <echo message="Building the project using maven and skipping tests if any in ${RepoFolder}" />
    <artifact:mvn pom="${GIT_REPO_HOME}\${RepoFolder}\pom.xml">
        <arg value="clean:clean" />
    </artifact:mvn>
    <artifact:mvn pom="${GIT_REPO_HOME}\${RepoFolder}\pom.xml">
        <arg value="install:install -DskipTests=true" />
    </artifact:mvn>
</target>

当我运行此版本时,clean正在正确处理,但我无法在安装插件中发送参数skipTests

还有其他方法可以从Ant执行Maven命令吗?我也试过

<exec command="mvn install -DskipTests=true" dir=""${GIT_REPO_HOME}\${RepoFolder}\pom.xml"/>

在下面给出错误时失败

  

C:\ Users \ sharath \ Desktop \ devsetup \ build.xml:102:执行失败:   java.io.IOException:无法运行程序“mvn”(在目录中   “D:\ sbhaskara \ GIT \ connectmodel”):CreateProcess error = 2,系统   找不到指定的文件

1 个答案:

答案 0 :(得分:0)

您没有正确构建任务的参数,它应该是:

<target name="CleanInstall">
    <echo message="Building the project using maven and skipping tests if any in ${RepoFolder}" />
    <artifact:mvn pom="${GIT_REPO_HOME}\${RepoFolder}\pom.xml" >
        <arg value="-Dmaven.test.skip=true" />
        <arg value="clean" />
        <arg value="install" />
    </artifact:mvn>
</target>

即。每个参数必须位于其自己的<arg>标记中。请注意,我在单个任务中将所有对Maven的调用都折叠了。