ant4eclipse类路径问题

时间:2011-07-27 08:57:20

标签: java eclipse java-ee ant4eclipse

我的项目和ant4eclipse有问题。如果我运行build.xml,我收到此消息:

Exception in thread "main" : org.ant4eclipse.lib.core.exception.Ant4EclipseException: Exception
whilst resolving the classpath entry '[EclipseClasspathEntry: path: 
org.eclipse.jst.j2ee.internal.module.container entryKind: 0 outputLocation: null exported: false]' of project 'MyProject': '

No 'jdtClassPathLibrary' defined for library entry 
'org.eclipse.jst.j2ee.internal.module.container'. 
To resolve this problem, please define a 'jdtClassPathLibrary' 
element inside your ant build file:

ant4eclipse:jdtClassPathLibrary name="org.eclipse.jst.j2ee.internal.module.container"  
fileset dir="..."/
/ant4eclipse:jdtClassPathLibrary 

但我在哪里可以找到这些文件? .classpath文件只有这个条目:

classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/

1 个答案:

答案 0 :(得分:3)

.classpath中的内容是容器条目。这是一种简写,意思是“包括作为这个容器一部分的所有罐子”。哪个罐子组成容器的定义存储在工作空间的variablesAndContainers.dat目录中的一个名为.metadata的文件中(这些定义是工作区范围的,不是作用于特定项目的范围)。

据我所知,ant4eclipse可以读取.classpath files,但不能读取variablesAndContainers.dat文件(这在几年前使用ant4eclipse时确实如此)。这意味着虽然它可以发现你有一个类路径条目org.eclipse.jst.j2ee.internal.module.container容器,但它无法找出该容器的定义是什么。

因此,无论何时使用容器,都必须以ant4eclipse:jdtClassPathLibrary元素的形式向ant4eclipse提供它的定义,正如错误消息所示:

<ant4eclipse:jdtClassPathLibrary name="org.eclipse.jst.j2ee.internal.module.container">
    <fileset dir="..."/>
</ant4eclipse:jdtClassPathLibrary>

fileset标签应该定义组成容器的jar文件。