我正在尝试重新构建我的构建技术来创建依赖于常见的第 3 方 jar 文件的 Java jar 文件。 (GlazedLists、Apache Commons 等)
我一直将它们全部放入 {Java JRE dir}/lib/ext 中,这样 JRE 就会自动看到它们,但这导致了一些问题,例如不记得我需要分发某些 jar 文件,所以我想学习更明确地说。
所以我将它们全部移动到 c:\appl\java\common\ 中,将它们添加到 Eclipse 构建路径中,并在我的 ant 文件中定义了这一点:
<path id="javac_classpath">
<fileset dir="${libDir}">
<include name="*.jar"/>
</fileset>
<fileset dir="c:/appl/java/common">
<include name="*.jar"/>
</fileset>
</path>
我将类路径清单标头设置为“。”在我的jar
任务,但即使我将相关的 jar 文件放入与我的应用程序 jar 文件相同的目录中,这似乎也不起作用。我可以将它们全部手动一一添加到类路径标头中,但我想知道是否有更简单的方法来正确设置类路径标头?
这就是您所需要的:
<path id="build-classpath">
<fileset dir="${dist}/lib">
<include name="*.jar"/>
</fileset>
</path>
<manifestclasspath property="lib.list" jarfile="${dist}/lib/myprog.jar">
<classpath refid="build-classpath"/>
</manifestclasspath>
<jar jarfile="${dist}/lib/myprog.jar"
basedir="${build}"
includes="com/my/prog/**" >
<manifest>
<attribute name="Main-Class" value="com.my.prog.MyProg"/>
<attribute name="Class-Path" value="${lib.list}"/>
</manifest>
</jar>
正如您可能看到的,它假设您已经编译了 Java 类并将它们输出到${build}
。它还假设您已将 jarfiles 复制到${dist}/lib
.
也就是说,值得研究其他内置对依赖项支持的构建系统,例如 Maven 和 Gradle。这些其他构建系统已经考虑了许多常见的项目结构和构建操作,因此您不必编写所有细节的脚本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)