ant jar 命令给出错误:"Building MANIFEST-only jar"



我正在使用ANT创建一个.jar文件。这是我的build.xml:

<?xml version="1.0"?>
<project name="stack_overflow" default="info">
    <target name="info">
        <jar destfile="util.jar" includes="com/appl/constants">
            <manifest>
                <attribute name="Main-Class" 
                           value="com.appl.constants.Applicationinfo.class"/>
             </manifest>
        </jar>
    </target>
</project>

当我运行ant jar时,会生成util.jar文件,但其中只有manifest.mf。

这是我得到的错误:

Buildfile: C:UsersSrikrishnaworkspaceSpringExample5buildbuild.xml
info:
      [jar] Building MANIFEST-only jar: C:UsersSrikrishnaworkspace
            SpringExample5build${web.dir}libutil.jar
BUILD FAILED
C:UsersSrikrishnaworkspaceSpringExample5buildbuild.xml:5: 
Could not create almost empty JAR archive (
C:UsersSrikrishnaworkspaceSpringExample5build${web.dir}libutil.jar 
(The system cannot find the path specified))
Total time: 200 milliseconds

我的文件夹结构是:

src
 |
com.appl.constants
   |
 Applicationinfo.class

为什么我的罐子里什么都没放?

您需要为jar任务指定basedir属性,或者使用嵌套的<fileset>来告诉jar任务在哪里查找类。

下面是一个示例构建文件。请注意,在jar目标中有一个对"build/classes"的basedir引用

<project>
    <target name="clean">
        <delete dir="build"/>
    </target>
    <target name="compile">
        <mkdir dir="build/classes"/>
        <javac srcdir="src" destdir="build/classes"/>
    </target>
    <target name="jar">
        <mkdir dir="build/jar"/>
        <jar destfile="build/jar/CalculateStats.jar" basedir="build/classes">
            <manifest>
                <attribute name="Main-Class" value="mypackage.CalculateStats"/>
            </manifest>
        </jar>
    </target>
    <target name="run">
        <java jar="build/jar/CalculateStats.jar" fork="true"/>
    </target>
</project>

最新更新