Обычное использование муравья, вызывающее методы Java - PullRequest
2 голосов
/ 04 марта 2010

Как обычно используется ant для выполнения java-класса или метода.

У меня в классе есть несколько методов, которые мне нужно вызывать, если запущены ant run или restore. И run, и restore являются методами одного и того же java-класса, но я не могу заставить ant выполнить запуск Class.beginExecution () и ant restore для выполнения Class.beginRestore () ..

Спасибо

Ответы [ 3 ]

5 голосов
/ 04 марта 2010

Вы ищете задачу Java ? Вам нужно дать ему полное имя класса с методом main, как если бы вы запускали его из командной строки.

2 голосов
/ 04 марта 2010

У вас есть несколько вариантов:

  1. Создайте метод main для этого класса, который принимает параметр, указывающий правильный метод, вызывает метод main и использует задачу Ant java .
  2. Создайте пару фиктивных классов, у которых есть метод main, который вызывает правильный метод для вашего класса, и используйте приведенное выше.
  3. Напишите свою задачу Ant , которая либо вызывает этот класс, либо просто заставляет этот класс расширять класс задачи Ant (который будет работать, если ему не нужно расширять что-либо еще). Решение
  4. @ sunnyjava очень умное: использовать задачу Ant junit для вызова JUnit-тестов, вызывающих ваш класс. Я не вижу большого преимущества перед # 2 выше, но вы получите то, что если вы используете JUnit 4+, вы можете просто аннотировать методы, которые вам нужно запустить, с помощью @Test. Недостатком является то, что невозможно провести различие между вашим до и после в одном классе.
0 голосов
/ 04 марта 2010

Вам нужно написать обычный класс java с методом main и запустить его с помощью следующей задачи ant:

<target name="run_main" depends="dist" description="--> runs main method of class YourMainClass">
    <java classname="test.com.YourMainClass"
          failonerror="true"
          fork="true">
        <sysproperty key="DEBUG" value="true"/>
        <arg value="${basedir}/"/>
        <classpath>
            <pathelement location="all.project.class.path"/>
        </classpath>
    </java>
</target>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...