2011-08-24 8 views
6

Estoy ejecutando hormigo 1.8.0 en modo detallado. Creé un manifiesto que contiene Implementación-Título, -Versión y -Vendor y el JAR resultante contiene un manifiesto con los que contiene. La clase de JAR funciona bien. Sin embargo, la salida de ant diceant reclamaciones Implementación-Título/Versión/Proveedor no establecido, pero son

[jar] No Implementación-Título establecido.No Implementación-Versión establecida.No Implementación-Proveedor establecido.

¿Esto es solo un error en hormiga o me falta algo aquí?

Gracias

Aquí está mi código de hormigas:

<?xml version="1.0" encoding="UTF-8"?> 
<project name="helloworld.makejar" default="makejar" basedir="."> 
    <target name ="makejar" description="Create a JAR for the HelloWorld project"> 
    <delete file="helloworld.jar" /> 
    <delete file="MANIFEST.MF" /> 

    <manifest file="MANIFEST.MF"> 
     <attribute name="Built-By" value="${user.name}" /> 
     <attribute name="Main-Class" value="project.builder.example.HelloWorld" /> 
     <section name="common"> 
     <attribute name="Specification-Title" value="Example" /> 
     <attribute name="Specification-Version" value="1.0.0" /> 
     <attribute name="Specification-Vendor" value="Example Organization" /> 
     <attribute name="Implementation-Title" value="common" /> 
     <attribute name="Implementation-Version" value="1.0.0 today" /> 
     <attribute name="Implementation-Vendor" value="Acme Corp." /> 
     </section> 
    </manifest> 

    <jar jarfile="helloworld.jar" 
     includes="**/*.class" 
     basedir="bin" 
     manifest="MANIFEST.MF" 
    /> 
    </target> 
    <javac srcdir="src" destdir="bin" /> 
</project> 
+0

¿Cómo está creando el manifiesto? ¿Lo creó a mano o está utilizando el elemento anidado manifiesto de la tarea jar de Ant? ¿Puedes publicar el contenido del archivo de manifiesto? –

+0

Gracias, Kevin. Agregué mi código de hormiga para que pueda ver cómo se crea y se consume el manifiesto. –

Respuesta

4

Creo que el problema es que los atributos deben ser definidas como hijos del elemento de manifiesto, en lugar de ser hijos de la sección anidada.

actualización

Tal vez el uso de un elemento manifiesto en línea haría una diferencia. El siguiente fragmento es de los documentos Ant:

<jar destfile="test.jar" basedir="."> 
    <include name="build"/> 
    <manifest> 
     <!-- Who is building this jar? --> 
     <attribute name="Built-By" value="${user.name}"/> 
     <!-- Information about the program itself --> 
     <attribute name="Implementation-Vendor" value="ACME inc."/> 
     <attribute name="Implementation-Title" value="GreatProduct"/> 
     <attribute name="Implementation-Version" value="1.0.0beta2"/> 
     <!-- details --> 
     <section name="common/MyClass.class"> 
      <attribute name="Sealed" value="false"/> 
     </section> 
    </manifest> 
</jar> 
+0

La eliminación de la jerarquía de sección no solucionó el problema. Además, observo que esto no va mal desde la línea de comando. Tal vez esta es una peculiaridad de ejecutar Eclipse hormiga? –

+0

Otra cosa que puede marcar la diferencia es usar un elemento de manifiesto en línea en la tarea jar en lugar de un elemento de manifiesto por separado. Respuesta actualizada arriba. –

+0

¡Bingo! Eso hace que funcione en Eclipse. Gracias. –

Cuestiones relacionadas