Как макрофилировать муравьиные мишени? - PullRequest
1 голос
/ 22 марта 2010

Я хочу, чтобы разные цели делали примерно одно и то же:

ant build   <- this would be a normal (default) build
ant safari  <- building the safari target.

Цели выглядят так:

<target name="build" depends="javac" description="GWT compile to JavaScript">
  <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
    <classpath>
      <pathelement location="src"/>
      <path refid="project.class.path"/>
    </classpath>
    <jvmarg value="-Xmx256M"/>
    <arg value="${lhs.target}"/>
  </java>
</target>

<target name="safari" depends="javac" description="GWT compile to Safari/JavaScript">
  <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
    <classpath>
      <pathelement location="src"/>
      <path refid="project.class.path"/>
    </classpath>
    <jvmarg value="-Xmx256M"/>
    <arg value="${lhs.safari.target}"/>
  </java>
</target>

(Не берите в голову первую мысль, которая бросается в глаза: выбросить муравья! Пока что это не вариант.) Я попытался использовать macrodef, но получил странное сообщение об ошибке (хотя сообщение не подразумевало его, оно думало, что должно делать с постановкой цели в последовательном порядке). Я не хочу писать cmdline так: ant -Dwhatever=nevermind. Есть идеи?

1 Ответ

3 голосов
/ 22 марта 2010

Моя первая попытка (без возможности проверить это в данный момент):

<target name="build" depends="javac, create.mymacro" description="GWT compile to JavaScript">
  <mymacro target="${lhs.target}"/>
</target>

<target name="safari" depends="javac, create.mymacro" description="GWT compile to Safari/JavaScript">
  <mymacro target="${lhs.safari.target}"/>
</target

<target name="create.mymacro">
  <macrodef name="mymacro">
    <attribute name="target" default="${lhs.target}"/>
    <sequential>
      <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
        <classpath>
          <pathelement location="src"/>
          <path refid="project.class.path"/>
        </classpath>
        <jvmarg value="-Xmx256M"/>
        <arg value="@{target}"/>
     </java>
    </sequential>
  </macrodef>
</target>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...