Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 从Lancet调用外部Ant任务库_Clojure_Leiningen - Fatal编程技术网

Clojure 从Lancet调用外部Ant任务库

Clojure 从Lancet调用外部Ant任务库,clojure,leiningen,Clojure,Leiningen,为这篇文章的篇幅提前道歉 是否可以加载外部Ant任务库,以便从lancet调用它们? 我正试图用clojure编写一个构建脚本来构建一些java/ucm(Oracle COTS产品)代码,其中的一部分需要获取一些WSDL,使用apache axis生成代码绑定并编译所有代码 我使用leiningen来管理java依赖项,并且已经编写了一个小的leiningen插件来进行构建——在这个插件中使用lancet来组合构建目标。到目前为止还不错 最初我尝试调用axis类WSDL2Java,它完成了获取W

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

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

我正试图用clojure编写一个构建脚本来构建一些java/ucm(Oracle COTS产品)代码,其中的一部分需要获取一些WSDL,使用apache axis生成代码绑定并编译所有代码

我使用leiningen来管理java依赖项,并且已经编写了一个小的leiningen插件来进行构建——在这个插件中使用lancet来组合构建目标。到目前为止还不错

最初我尝试调用axis类WSDL2Java,它完成了获取WSDLs并绑定到它们所需的所有工作。代码如下所示:

(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,它会终止我的leiingen任务,因此不会调用以下任何任务,例如编译和文件复制等

所以接下来我尝试调用ant任务(包含在ApacheAxis项目中)。我将其作为依赖项添加到project.clj中,这很有效。我可以导入表示ant任务的类

(import org.apache.axis.tools.ant.wsdl.Wsdl2javaAntTask)
但是我现在缺乏如何在我的构建中提供底层ant任务的想法。我看到一篇帖子,指出外部ant任务/库不能导入lancet(链接在这里),但我不确定自己是否完全理解这一点——这对clojure来说还是新鲜事


无论如何-任何想法都非常感谢。:)

在尝试了各种方法(包括安装自定义SecurityManager以停止对system.exit的调用)之后,我发现github上有一个leiningen插件,它可以完成我所需要的功能::我仍然想知道在lancet中是否可以加载外部Ant库。