gpt4 book ai didi

java - 如何将参数传递给 Ant 自定义 Java 类

转载 作者:行者123 更新时间:2023-11-30 02:39:07 25 4
gpt4 key购买 nike

我想将一些函数参数传递给函数 public void execute()当我们使用 <taskdef> 时,这是 Java 代码中类的基本入口点在 Ant .所以我的问题是我们能否将参数传递给 <taskdef> 的函数在 Ant 中如果是的话如何将参数传递给函数。

下面提供了我的示例 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() 函数。我怎样才能实现这个目标?

最佳答案

试试这个:

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>

参见The Howto

关于java - 如何将参数传递给 Ant <taskdef> 自定义 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42295627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com