Ant + Weblogic - CreateProcess error = 206

时间:2016-05-27 19:37:22

标签: java jenkins ant weblogic createprocess

我正在尝试使用ant将耳朵部署到weblogic服务器。

我从以下开始:

<target name="deploy">
     <taskdef name="wldeploy" classname="weblogic.ant.taskdefs.management.WLDeploy">
     <wldeploy action="deploy" name="projName" source="proj.ear" user="user" password="pass" adminurl="localhost:8050" targets="mytarget"/>
</target>

然而,这给了我以下错误:

  

无法找到taskdef类weblogic.ant.taskdefs.management.WLDeploy    使用类加载器AntClassLoader []

为了解决这个问题,我修改了taskdef以包含weblogic jar的路径。但是,现在我收到了这个错误:

  

[wldeploy] weblogic.Deployer -debug -verbose -noexit -name TPD -source C:\ Program Files(x86)\ Jenkins \ jobs \ PROJ \ workspace \ target \ dist \ proj.ear -targets mytarget -adminurl localhost :8050 -user user -password pass -deploy

     

[wldeploy] C:\ Program Files(x86)\ Jenkins \ jobs \ PROJ \ workspace \ build.xml:574:java.io.IOException:无法运行程序“D:\ jdk1.7 \ jre \ bin \ java.exe“:CreateProcess error = 206,文件名或扩展名太长

(以上内容由Jenkins托管在Windows机箱上生成)。

我有一种感觉这是由于weblogic jar创建的类路径对于Windows命令提示符来说太大了但是我对Ant的经验不足让我产生怀疑。我已经研究过使用manifestclasspath,但是再次缺乏经验阻碍了我有效地实现它。

对此有什么好的解决方法?

1 个答案:

答案 0 :(得分:0)

DOS命令行在这方面非常有限。解决方法是创建一个“路径jar”。这是一个只包含aManifest.mf文件的jar,其Class-Paths指定了长长的jar列表的磁盘路径等。现在只需将此路径jar添加到命令行类路径中。这通常比将实际资源打包在一起更方便。

我记得,磁盘路径可以相对于路径jar本身。所以Manifest.mfmight看起来像这样:

Class-Path: this.jar that.jar ../lib/other.jar

如果您的路径jar主要包含基础资源,那么它不会太频繁地更改,但您可能仍希望在构建中的某处生成它。例如:

<jar destfile="pathing.jar"> <manifest> <attribute name="Class-Path" value="this.jar that.jar ../lib/other.jar"/> </manifest> </jar>