无法将第三方jar导入到ant构建中

时间:2010-11-11 10:51:42

标签: ant jar

我是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文件但没有成功。

如果有人能就我出错的地方和我应该做的事给我一些指导,我真的很感激。

1 个答案:

答案 0 :(得分:0)

好的,所以我做了一些进一步的阅读,在我看来,在ant / lib路径中包含jar文件是一种有效的方法。事实上,FAQ告诉我,并非所有jar文件都可以使用类路径支持嵌套的依赖项加载,因为jUnit以前不支持这种加载。

我很想知道情况并非如此。

现在我只是添加一个ant任务来将我的第三方库复制到ant / lib路径中,然后在构建完成时删除它们。