提前为这篇文章的篇幅道歉...
是否可以加载外部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的新手。
无论如何 - 任何想法都表示感谢。 :)