Как использовать свойство Array в Ant Task? - PullRequest
3 голосов
/ 13 сентября 2010

Я создал задачу Ant, в которой я хотел бы иметь массив свойств? Во-первых, возможно ли это? Позволяет ли нам ant иметь массив свойств?

public class MyTask extends Task {
    private String tokens[] = null;
    public void setTokens(String[] _tokens) {
        //...
    }
    public void execute() {
     // iterator over the conditions
    }
}

Теперь, как установить токены в файле сборки ant?

Ответы [ 2 ]

1 голос
/ 13 сентября 2010

Похоже, вы хотите установить несколько внутренних тегов.

Написание собственного задания дает некоторые рекомендации. Раздел, который вы ищете, - Поддержка вложенных элементов . Это довольно просто. Я был бы склонен использовать что-то вроде следующего

List tokens = new ArrayList();

public void addConfiguredToken(NestedElement token) {
    tokens.add(token);
}

Затем вы можете использовать его, используя что-то вроде следующего

<task>
    <token value="XXX" />
    <token value="YYY" />
</task>
0 голосов
/ 14 сентября 2010

Ant также имеет несколько типов, таких как DirList и FileSet - довольно распространено иметь задачу, которая принимает атрибут, который является неявным списком, а затем перебирает содержимое. Если вы имеете дело с файлами, то хорошо, что вы можете сказать Ant, чтобы они надвигались на них, сохраняли их в FileSet и передавали их своему типу.

...