我是ant和java的新手,我正在努力将第三方ant库awstasks合并到我的ant构建脚本中。
如果我将它复制到usr / share / ant / lib路径中,我可以开始加载这个jar,但它失败并带有异常
无法找到类dak.ant.taskdefs.S3Upload所需的类:org / jets3t / service / S3ServiceException使用类加载器AntClassLoader
然后我下载了jets3t.jar文件并将其放在ant / lib路径中,只是因为它在另一个依赖项上失败了。我知道在ant / lib路径中包含jar文件的路径不是处理这些第三方插件及其依赖的正确方法。
然后,我做了一些研究,使用路径导入必要的jar文件,并一直试图使用它们来解决依赖性问题,但一直没有成功。 ant路径声明如下:<path id="projet.classpath" description="The default classpath.">
<pathelement path="../awsUpload/awstasks-read-only/lib/"/>
<fileset dir="../awsUpload/awstasks-read-only/lib/">
<include name="**/*.jar"/>
</fileset>
</path>
我可以从构建输出中看到它正在加载以下jar文件,据我所知,它应该包含它失败的jets3t依赖项:
AntClassLoader [/Users/travis/workspace/Sudoko/build/lib:/Users/travis/workspace/Sudoko/build/lib/jets3t/jars/cockpit-0.8.0.jar:/Users/travis/workspace/ Sudoko /建造/ LIB /的JetS3t /罐/ cockpitlite-0.8.0.jar:/Users/travis/workspace/Sudoko/build/lib/jets3t/jars/jets3t-0.8.0.jar:/用户/特拉维斯/工作区/ Sudoko /编译/ lib中/的JetS3t /瓶/的JetS3t贵-0.8.0.jar:/Users/travis/workspace/Sudoko/build/lib/jets3t/jars/synchronize-0.8.0.jar:/用户/特拉维斯/工作区/ Sudoko /建造/ LIB /的JetS3t /罐/上载-0.8.0.jar]
我还尝试使用路径方法加载awstasks jar文件但没有成功。
如果有人能就我出错的地方和我应该做的事给我一些指导,我真的很感激。
答案 0 :(得分:0)
好的,所以我做了一些进一步的阅读,在我看来,在ant / lib路径中包含jar文件是一种有效的方法。事实上,FAQ告诉我,并非所有jar文件都可以使用类路径支持嵌套的依赖项加载,因为jUnit以前不支持这种加载。
我很想知道情况并非如此。
现在我只是添加一个ant任务来将我的第三方库复制到ant / lib路径中,然后在构建完成时删除它们。