5

我希望能够将配置值从 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

4

1 回答 1

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 属性。

于 2013-05-28T16:50:11.913 回答