我正在尝试使用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,但是再次缺乏经验阻碍了我有效地实现它。
对此有什么好的解决方法?
答案 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>