2013-08-25 4 views
4

Я использую ANT для создания файла .jar. Вот мой build.xml:Команда ant 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

Необходимо указать атрибут basedir в задаче jar или использовать вложенный < fileset>, чтобы рассказать о задаче в jar, где искать классы.

Вот пример файла сборки. Обратите внимание, в целевом банке есть ссылка имя_базовой_папки на «сборки/классы»

<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

Привет Greg, спасибо за responding.if я указать имя_базовой_папки сказать, как BASEDIR = «$ {build.dir}/классы» он бросает следующая ошибка.BUILD FAILED C: \ Users \ Srikrishna \ workspace \ SpringExample5 \ build \ build.xml: 6: C: \ Users \ Srikrishna \ workspace \ SpringExample5 \ build \ $ {build.dir} \ classes не найден. а также я не знаю, как использовать .can u, пожалуйста, укажите пример, как читать путь к классу. – Krishna

Смежные вопросы