Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant调用java方法的常见用法_Java_Ant - Fatal编程技术网

Ant调用java方法的常见用法

Ant调用java方法的常见用法,java,ant,Java,Ant,使用ant执行java类或方法的常见用法是什么 我在on类中有多个方法,如果运行ant run或restore,我需要调用这些方法。run和restore都是同一个java类的方法,但我似乎无法让ant run执行class.beginExecution()和ant restore执行class.beginRestore() 谢谢您正在寻找任务吗?您需要给它一个带有main方法的类的完全限定名,就像您从命令行运行它一样。您需要使用main方法编写常规java类,并使用以下ant任务运行它: &l

使用ant执行java类或方法的常见用法是什么

我在on类中有多个方法,如果运行ant run或restore,我需要调用这些方法。run和restore都是同一个java类的方法,但我似乎无法让ant run执行class.beginExecution()和ant restore执行class.beginRestore()


谢谢

您正在寻找任务吗?您需要给它一个带有main方法的类的完全限定名,就像您从命令行运行它一样。

您需要使用main方法编写常规java类,并使用以下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>

您有几个选择:

  • 在此类上创建一个main方法,该方法接受一个指示正确方法的参数,调用main方法并使用Ant任务
  • 创建两个具有main方法的伪类,该方法调用类上的正确方法,并使用上述方法
  • 编写自己的类,或者调用这个类,或者让这个类扩展Ant任务类(如果它不需要扩展任何其他内容,那么这个类就可以工作)
  • @sunnyjava的解决方案非常聪明,使用Ant任务调用调用类的JUnit测试。我看不出与上面的#2相比有什么巨大的优势,但是如果您使用JUnit 4+,您可以只注释您需要使用@Test运行的方法。缺点是在一个类中无法区分你的前后

  • 您是否考虑过编写一个JUnit测试用例并从ant调用它?它必须是一个类的主要部分吗?我可以不执行特定的方法吗?或者我通过将参数传递到main来调用正确的方法来实现这一点?为此,您可以编写自己的任务。看见