Eclipse中的Ant构建失败

3

我正在使用ANT构建我的项目的jar文件,在谷歌上搜索后,找到了如何进行操作,我参考了这篇文章。下面是我的build.xml文件:

<?xml version="1.0" ?> 
<project name="ExcelData" default="compress">

    <target name="init">
        <mkdir dir="build/classes" />
        <mkdir dir="dist" />
    </target>

    <target name="compile" depends="init">
        <javac srcdir="src" destdir="build/classes" />
    </target>

    <target name="compress" depends="compile">
            <jar destfile="dist/ExcelData.jar" basedir="build/classes" />
    </target>

    <target name="execute" depends="compile">
        <java classname="com.spt.excel.data.ExcelData" classpath="build/classes" />
    </target>

    <target name="clean">
        <delete dir="build" />
        <delete dir="dist" />
    </target>

</project>

但问题在于ANT构建失败了。但是我收到的错误信息是:
D:\Eclipse\workspace\ExcelData\src\com\spt\excel\data\ExcelData.java:24: error: package org.slf4j does not exist`

我参考了这个链接设置tools.jar。

请问有谁能告诉我我哪里出错了。谢谢。


你在使用Eclipse吗? - Nikolay Kuznetsov
是的,我正在使用 Eclipse。 - Rithesh
2个回答

5

您的ant文件没有包含库,也就是说缺少了classpath。只需将eclipse项目中包含的所有库添加到ant文件中,一切都会正常工作。请阅读原始教程,例如这个

就像这样。

<javac srcdir="${src.dir}" destdir="${classes.dir}">
    <classpath>
        <pathelement location="${lib.dir}/lib1.jar"/>
        <pathelement location="${lib.dir}/lib2.jar"/>
    </classpath>
</javac>

针对库

<path id="mylibs">
    <fileset dir="${lib.dir}" includes="**/*.jar"/>
</path>

<javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="mylibs" debug="on"/>

添加属性lib.dir

 <property name="lib.dir"  location="{here is path to your libraries}"/>

嗨Sergii,如果我们有很多库,我们需要包含所有这些吗? - Rithesh
@Rithesh 更新我的答案,顺便说一下,在写东西之前尝试阅读文档。 - Sergii Zagriichuk
如果我们给出lib.dir和src.dir,它会报错,显示D:\Eclipse\workspace\ExcelData${lib.dir}未找到。 - Rithesh

2
对于Eclipse,我建议以下操作:
Right click your project -> Export -> Runnable Jar file 

Pick launch configuration, destination, extract required libraries into JAR, tick Save as ANT script

Finish.

最终,您将生成可重复使用的Ant脚本以及Jar文件。

然后,您需要分析您的Ant脚本。

提取和打包库到Jar文件中的区别


嗨,Nikolay。我想使用那个 build.xml。 - Rithesh
从IDE创建ant文件,如提取等操作,并不提供如何创建真正的构建文件的知识。因此,像这样的问题,我认为只有作者才能完美地阅读ant.apache.com的文档并手动创建构建文件。但是你的观点很好,对于优秀的开发人员来说是有帮助的。干杯! - Sergii Zagriichuk
@SergiiZagriichuk,如果操作者没有使用Ant的经验,那么首先生成有效的Ant脚本是最好的。然后针对每个生成的Ant任务阅读文档。我个人就是这样做的。这样可以节省时间 :) - Nikolay Kuznetsov
@NikolayKuznetsov 没错,我同意,这可以节省时间。 - Sergii Zagriichuk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接