如何将参数传递给 Ant <taskdef> 自定义 Java class
How to pass arguments to an Ant <taskdef> custom Java class
我想将一些函数参数传递给函数 public void execute()
,当我们在中使用 <taskdef>
时,它是从 Java 代码到 class 的基本入口点蚂蚁。所以我的问题是我们能否在 Ant 中将参数传递给带有 <taskdef>
的函数,如果是的话如何将参数传递给函数。
下面提供了我的示例 Ant 代码和 Java 需要修改的代码。
build.xml
代码
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="MyTask" basedir="." default="use">
<target name="use" description="Use the Task" depends="jar">
<taskdef name="helloworld" classname="HelloWorld" classpath="HelloWorld.jar"/>
<helloworld/>
</target>
<!-- invoking java files by java task -->
<target name="javatask">
<java fork="true" failonerror="yes" classname="HelloWorld.class"/>
</target>
<target name="jar" depends="compile">
<jar destfile="HelloWorld.jar"
basedir="."/>
</target>
<target name="compile" depends="clean">
<javac srcdir="." destdir="." includeantruntime="false"/>
</target>
<target name="clean">
<delete file="HelloWorld.jar"/>
</target>
</project>
HelloWorld.java
public class HelloWorld {
public void execute() {
System.out.println("Hello World first function");
}
}
我需要将函数参数传递给 execute() 函数。我怎样才能做到这一点?
我认为这对你有用。
<?xml version="1.0"?>
<project name="Build-example" default="main" basedir=".">
<taskdef name="mytask" classname="com.urdomain.HelloWorld " classpath="bin" />
<target name="main">
<mytask message="Hello my Task!" />
</target>
</project>
在上面的代码片段中,您可以在 class 中定义 taskdef 名称,您需要向其传递参数。
参数可以在上面传递。在这里,我尝试将 'Hello my Task' 作为消息传递。
试试这个:
public class HelloWorld extends Task {
String message;
public void setMessage(String msg) {
message = msg;
}
public void execute() {
if (message==null) {
throw new BuildException("No message set.");
}
log(message);
}
}
和
<target name="use" description="Use the Task" depends="jar">
<taskdef name="helloworld" classname="HelloWorld" classpath="HelloWorld.jar"/>
<helloworld message="Hello World" />
</target>
我想将一些函数参数传递给函数 public void execute()
,当我们在中使用 <taskdef>
时,它是从 Java 代码到 class 的基本入口点蚂蚁。所以我的问题是我们能否在 Ant 中将参数传递给带有 <taskdef>
的函数,如果是的话如何将参数传递给函数。
下面提供了我的示例 Ant 代码和 Java 需要修改的代码。
build.xml
代码<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="MyTask" basedir="." default="use">
<target name="use" description="Use the Task" depends="jar">
<taskdef name="helloworld" classname="HelloWorld" classpath="HelloWorld.jar"/>
<helloworld/>
</target>
<!-- invoking java files by java task -->
<target name="javatask">
<java fork="true" failonerror="yes" classname="HelloWorld.class"/>
</target>
<target name="jar" depends="compile">
<jar destfile="HelloWorld.jar"
basedir="."/>
</target>
<target name="compile" depends="clean">
<javac srcdir="." destdir="." includeantruntime="false"/>
</target>
<target name="clean">
<delete file="HelloWorld.jar"/>
</target>
</project>
HelloWorld.java
public class HelloWorld {
public void execute() {
System.out.println("Hello World first function");
}
}
我需要将函数参数传递给 execute() 函数。我怎样才能做到这一点?
我认为这对你有用。
<?xml version="1.0"?>
<project name="Build-example" default="main" basedir=".">
<taskdef name="mytask" classname="com.urdomain.HelloWorld " classpath="bin" />
<target name="main">
<mytask message="Hello my Task!" />
</target>
</project>
在上面的代码片段中,您可以在 class 中定义 taskdef 名称,您需要向其传递参数。 参数可以在上面传递。在这里,我尝试将 'Hello my Task' 作为消息传递。
试试这个:
public class HelloWorld extends Task {
String message;
public void setMessage(String msg) {
message = msg;
}
public void execute() {
if (message==null) {
throw new BuildException("No message set.");
}
log(message);
}
}
和
<target name="use" description="Use the Task" depends="jar">
<taskdef name="helloworld" classname="HelloWorld" classpath="HelloWorld.jar"/>
<helloworld message="Hello World" />
</target>