Вызов внешних библиотек задач Ant из Lancet

Заранее извиняюсь за длину поста...

Можно ли загрузить внешние библиотеки задач Ant, чтобы их можно было вызывать из lancet?

Я пытаюсь написать скрипт сборки в clojure для создания некоторого кода java/ucm (продукт Oracle COTS), часть которого должна захватить некоторые WSDL, сгенерировать привязки кода с осью apache и скомпилировать все это.

Я использую leiningen для управления зависимостями java и написал небольшой плагин leiningen для сборки - используя lancet внутри него, чтобы собрать цели сборки. Все идет нормально.

Сначала я попытался назвать класс оси WSDL2Java, который делает все необходимое для захвата WSDL и привязки к ним. Код показан ниже:

(import org.apache.axis.wsdl.WSDL2Java)

(deftarget bind-to-wsdls
    (print "Binding to WSDLs...")
    (WSDL2Java/main (into-array String 
         ;; **WARNING** - the lack of space after the '-o'
         ;; is intentional. Won't work if you add a space
         ;; as it creates an output dir called ' src' - 
         ;; note the space.
         (list (str "-o" src-dir) wsdl-file)))
    (println "Done."))

Единственная проблема заключается в том, что это вызывает system.exit, который завершает мою задачу leijingen, поэтому ни одна из следующих задач, таких как компиляция, копирование файлов и т. д., не вызывается.

Итак, затем я попытался вызвать задачу ant (содержащуюся как часть проекта оси apache). Я добавил его как зависимость в свой проект.clj, и это работает. Я могу импортировать класс, представляющий задачу муравья.

(import org.apache.axis.tools.ant.wsdl.Wsdl2javaAntTask)

Но сейчас мне не хватает идей о том, как сделать основную задачу муравья доступной из моей сборки. Я видел сообщение, в котором указано, что внешние задачи/библиотеки ant не могут быть импортированы в lancet (ссылка здесь Кто-нибудь использует веб-тест без ant?), но не был уверен, что полностью понял это - все еще новичок в clojure.

В любом случае - любые идеи с благодарностью. :)


person Kris    schedule 10.01.2012    source источник
comment
Попробовав различные вещи (включая установку пользовательского SecurityManager, чтобы остановить работу вызова system.exit, согласно stackoverflow.com/questions/309396/) Я обнаружил, что на github есть плагин leiningen, который делает почти то, что я нужно:: github.com/jaley/lein-axis   -  person Kris    schedule 10.01.2012
comment
Мне все еще было бы интересно выяснить, возможна ли загрузка внешних библиотек Ant в lancet.   -  person Kris    schedule 10.01.2012