我正在尝试使用ant脚本构建可执行jar程序。当项目没有任何依赖项时,它可以正常工作,但是当我将另一个项目添加为依赖项时,ant脚本无法从中找到这些类。
我做了一个简单的测试,并了解它是如何工作的。
如下:
Ant脚本示例:
<target name="compile">
<mkdir dir="${classes.dir}" />
<javac srcdir="${src.dir}" destdir="${classes.dir}" />
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}" />
<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}" includes="*.class" >
<manifest>
<attribute name="Main-Class" value="${main-class}" />
</manifest>
</jar>
</target>
<target name="run" depends="jar">
<java jar="${jar.dir}/${ant.project.name}.jar" fork="true" />
</target>
我的项目结构是这样的:
AntHelloWorld 取决于 AntTest 。 我的build.xml位于 AntHelloWorld 中,我想修改我的ant build.xml以使用项目依赖项。 (我无法发布图片)
我试图找到这个,我刚刚看到了如何使用jar依赖项执行此操作,How to build an executable jar with external jar?
这是我在stackoverflow中的第一个问题,请随时告知我在哪里可以改进。
答案 0 :(得分:0)
javac
指令可以包含包含类路径的子元素。您可以将依赖项目的JAR文件放在类路径上。请考虑此示例,该示例演示如何将JAR文件放在类路径上:
//This goes inside the javac element
<classpath>
<fileset dir="${dependentProject}/lib">
<include name="**/*.jar" />
</fileset>
</classpath>
作为第二个示例,如果要包含依赖项目中的类文件,并且类文件位于构建目录中:
<classpath>
<pathelement location="${dependentProject}/build" />
<fileset dir="${dependentProject}/lib">
<include name="**/*.jar" />
</fileset>
</classpath>