Заранее извиняюсь за длину поста...
Можно ли загрузить внешние библиотеки задач 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.
В любом случае - любые идеи с благодарностью. :)