Java Ant build在生成清单时创建了不正确的JAR相对路径
我正在使用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/”) 干杯,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/
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>