Eclipse:如何使用具有外部项目依赖性的ant构建可执行jar?

时间:2015-02-19 16:10:15

标签: java eclipse ant jar dependencies

我正在尝试使用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中的第一个问题,请随时告知我在哪里可以改进。

1 个答案:

答案 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>