从Lancet调用外部Ant任务库

时间:2012-01-10 10:21:35

标签: clojure leiningen

提前为这篇文章的篇幅道歉...

是否可以加载外部Ant任务库,以便可以从柳叶刀中调用它们?

我正在尝试在clojure中编写构建脚本来构建一些java / ucm(Oracle COTS产品)代码,其中一部分需要获取一些WSDL,使用apache轴生成代码绑定并将其全部编译。

使用leiningen管理java依赖项并编写了一个小的leiningen插件来进行构建 - 使用其中的柳叶刀将构建目标组合在一起。到目前为止一切都很好。

最初我尝试调用轴类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."))

唯一的问题是,这会调用终止我的leiingen任务的system.exit,因此不会调用以下任何任务,例如编译和文件复制等。

接下来我尝试调用ant任务(包含在apache轴项目中)。我在project.clj中添加了它作为依赖项 - 这是有效的。我可以导入代表ant任务的类。

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

但我现在缺乏关于如何在我的构建中提供底层ant任务的想法。我看到一个帖子表明外部蚂蚁任务/库不能导入柳叶刀(链接在这里Anyone using webtest without ant?),但不确定我是否完全理解这一点 - 仍然是clojure的新手。

无论如何 - 任何想法都表示感谢。 :)

0 个答案:

没有答案