将参数从'maven'传递给ant任务

时间:2013-05-28 14:08:57

标签: maven ant

我希望能够将配置值从maven传递到ant。如果这是有道理的。

我希望能够将变量传递给此任务:

假设我定义了一个变量$ {someArg}我希望能够将'someArg'传递给maven脚本并最终传递给build.xml ant脚本。

这是我的定义:

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>gen</id>
            <phase>generate-resources</phase>
            <configuration>
                <target name="main">
                    <script language="javascript" manager="javax"
                    src="${project.basedir}/src/scripts/myfile.js"/>
                </target>
            </configuration>
            <goals>
  ${someArg}  (how to pass someArg)
                <goal>run</goal>
            </goals>
        </execution>
...

然后这是build.xml的一部分:

<?xml version="1.0" ?> <project name="deployment" default="deploy">
     <property file="build.properties" />
  <target>
   <echo message="${someArg}" />
  </target>
</project>

我想传递给build.xml

1 个答案:

答案 0 :(得分:4)

有一个例子:http://maven.apache.org/plugins/maven-antrun-plugin/examples/classpaths.html

在你的配置pom.xml中:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
      <execution>
        <id>compile</id>
        <phase>compile</phase>
        <configuration>
          <target>
            <property name="compile_classpath" refid="maven.compile.classpath"/>
            <property name="runtime_classpath" refid="maven.runtime.classpath"/>
            <property name="test_classpath" refid="maven.test.classpath"/>
            <property name="plugin_classpath" refid="maven.plugin.classpath"/>

            <echo message="compile classpath: ${compile_classpath}"/>
            <echo message="runtime classpath: ${runtime_classpath}"/>
            <echo message="test classpath:    ${test_classpath}"/>
            <echo message="plugin classpath:  ${plugin_classpath}"/>
          </target>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

Maven文档说您可以在目标标记中放置任何内容,因此您应该能够使用$ {property name}在目标中使用maven属性。