gpt4 book ai didi

java - Ant : addTYPE(TYPE x) vs add(TYPE x) (latter doesn't work) 中的自定义任务

转载 作者:行者123 更新时间:2023-11-30 09:58:16 25 4
gpt4 key购买 nike

我正在编写需要接受自定义嵌套类型的自定义 Ant 任务。

根据 the Ant manual ,我应该能够使用 addConfigured(TYPE x) 而不是 addConfiguredTYPE(TYPE x)。此外,根据 this article (新反射规则,Ant 1.6 中的多态性部分)在 Ant 1.6 中添加了对 addConfigured(TYPE x) 的支持。

<taskdef name="custom-task" classname="com.acme.CustomTask">
<classpath refid="task.classpath" />
</taskdef>

<typedef name="custom-type" classname="com.acme.CustomTask$CustomType">
<classpath refid="task.classpath" />
</typedef>

...

<custom-task>
<custom-type/>
</custom-task>

任务是用Java实现的

public class CustomTask extends Task
{
...

public void addConfigured( CustomType t )
{...}

....

public static class CustomType
{...}
}

当我尝试运行构建脚本时,出现以下异常:

Build Failed: custom-task doesn't support the nested "custom-type" element.

However, when I change

<typedef name="custom-type" classname="com.acme.CustomTask$CustomType">
...
<custom-task>
<custom-type/>
</custom-task>
...
public void addConfigured( CustomType t )

<typedef name="customtype" classname="com.acme.CustomTask$CustomType">
...
<custom-task>
<customtype/>
</custom-task>
...
public void addConfiguredCustomType( CustomType t )

一切都按预期进行。

为什么通用的 addConfigured( TYPE x ) 技术似乎对我的情况不起作用?

其他人herehere遇到了同样的问题。

PS: Ant 版本1.7.0

最佳答案

您是否尝试过更改定义顺序,即先执行 typedef?不确定这是否重要,但值得一试。

此外,您是否尝试过将其打包到 antlib 中?在我的公司,我们有很多自定义任务,我知道普通的 addaddConfigured 方法可以工作。我们使用 antlibs 并且总是首先在 antlib.xml 中定义类型

关于java - Ant : addTYPE(TYPE x) vs add(TYPE x) (latter doesn't work) 中的自定义任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1096503/

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