Java Ant build在生成清单时创建了不正确的JAR相对路径

Java Ant build在生成清单时创建了不正确的JAR相对路径,java,ant,build,classpath,manifest,Java,Ant,Build,Classpath,Manifest,我正在使用Ant构建Java应用程序,并自动生成MANIFEST.MF文件,以便它包含lib目录中的所有JAR 这似乎是可行的,但问题是它没有将它们写成lib/some.jar,而是包含了我的Eclipse项目的名称:MyProject/lib/some.jar 这当然是不正确的,当作为独立应用程序运行时,会导致找不到任何jar Build.xml(重要部分在末尾): 你知道如何解决这个问题吗?它只显示xxx.jar而不是MyProject/lib/xxx.jar(所以没有“MyProject/

我正在使用Ant构建Java应用程序,并自动生成MANIFEST.MF文件,以便它包含lib目录中的所有JAR

这似乎是可行的,但问题是它没有将它们写成lib/some.jar,而是包含了我的Eclipse项目的名称:MyProject/lib/some.jar

这当然是不正确的,当作为独立应用程序运行时,会导致找不到任何jar

Build.xml(重要部分在末尾):

你知道如何解决这个问题吗?它只显示xxx.jar而不是MyProject/lib/xxx.jar(所以没有“MyProject/lib/”)

干杯,
Bart

必须将build.xml中的项目目录设置为

<property name="projectDir" value=".." />


在此之后,您必须尝试使用相对路径处理所有内容。目前,问题背后的原因是正在使用绝对路径。

manifestclasspath
希望
jarfile
属性指向JAR文件的位置(该文件可能还不存在,但没关系)。既然您在
\u deliveries/lib/app.JAR
创建JAR文件,并且您还将所有lib JAR从
lib
复制到
\u deliveries/lib
,那么

<manifestclasspath property="lib.list" jarfile="lib/app.jar">
    <classpath refid="jarlib" />
</manifestclasspath>


应该这样做,并将使用正确的相对路径创建一个最终的类路径,即
All-MB.jar activation.jar aspectjrt.jar
等。

好吧,我尝试了一千种不同的方法尝试使用相对路径来更改它,但没有成功。问题总是在于manifestclasspath任务使用jarlist路径的完整路径。您可以共享整个build.xml吗?这样我就可以更深入地了解我自己也发现了同样的事情。将标记为正确。
<property name="projectDir" value=".." />
<manifestclasspath property="lib.list" jarfile="lib/app.jar">
    <classpath refid="jarlib" />
</manifestclasspath>