Pregunta

¿Cómo debo especificar exactamente la ubicación de todos los archivos de propiedades dentro del manifiesto de hormiga?

Mi jar no funciona porque no puede encontrar las propiedades log4j, Spring, etc.

Todos estos archivos están contenidos dentro de una carpeta llamada " server-config " que se encuentra en el mismo nivel que el código fuente, es decir:

  • META-INF
  • com
  • configuración del servidor

Esencialmente, quiero saber qué necesito agregar a la propiedad Class-Path para que el jar esté al tanto de todos estos archivos de propiedades dentro de la carpeta server-config.

Aquí está mi tarea actual:

<jar destfile="${root.home}/onejar/build/main/main.jar" basedir="${build.home}">
        <manifest>
            <attribute name="Class-Path" value=".;server-config" />
        </manifest>
        <include name="com/mycompany/client/*"/>
        <include name="com/mycompany/portable/util/*"/>
        <include name="com/mycompany/request/*"/>
        <include name="com/mycompany/model/*"/>
        <include name="com/mycompany/controller/*"/>
        <include name="com/mycompany/helpers/*"/>
        <include name="server-config/*"/>
    </jar>

He intentado algunas cosas y ninguna de ellas funciona, sigo recibiendo errores debido a que no se encuentra el archivo.

¡Cualquier ayuda sería muy apreciada!

¿Fue útil?

Solución

Puede eliminar toda la parte <manifest...; eso no es lo que hace el atributo de manifiesto Clase-Ruta. Es para cosas externas al JAR.

La línea <include name="server-config/*"/> debería funcionar, si el directorio server-config existe dentro de su directorio $ {build.home}. Probablemente necesite una tarea para copiarlos allí: menciona que el código fuente se encuentra en el mismo nivel, pero no menciona dónde están compilados .

Un ejemplo -

<mkdir dir="${build.dir}/server-config"
<copy todir="${build.dir}/server-config">
  <fileset dir="${src.dir}/server-config">
    <include name="*"/>
  </fileset>
</copy>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top