2013-08-25 60 views
4

我正在使用ANT創建.jar文件。這是我build.xmlant jar命令給出錯誤:「Building MANIFEST-only jar」

<?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:\Users\Srikrishna\workspace\SpringExample5\build\build.xml 
info: 
     [jar] Building MANIFEST-only jar: C:\Users\Srikrishna\workspace\ 
      SpringExample5\build\${web.dir}\lib\util.jar 

BUILD FAILED 
C:\Users\Srikrishna\workspace\SpringExample5\build\build.xml:5: 
Could not create almost empty JAR archive (
C:\Users\Srikrishna\workspace\SpringExample5\build\${web.dir}\lib\util.jar 
(The system cannot find the path specified)) 

Total time: 200 milliseconds 

我的文件夾結構是:

src 
| 
com.appl.constants 
    | 
Applicationinfo.class 

爲什麼沒有得到把我的罐子?

回答

2

您需要爲jar任務指定basedir屬性或使用嵌套的< fileset>告訴jar任務在哪裏查找類。

這是一個示例構建文件。在jar目標的通知是有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> 
+0

格雷格您好,感謝responding.if我指定的basedir說這樣的basedir =「$ {} build.dir /班」,它是扔以下錯誤.BUILD FAILED C:\ Users \ Srikrishna \ workspace \ SpringExample5 \ build \ build.xml:6:C:\ Users \ Srikrishna \ workspace \ SpringExample5 \ build \ $ {build.dir} \ classes not found。並且我也不知道如何使用。可以舉一個例子說明如何讀取類路徑。 – Krishna