Utilizamos el atributo manifest
del complemento java para escribir los archivos MANIFEST.MF
en nuestros artefactos jar
.Cómo usar el API de Manifiesto de Gradle para insertar un archivo `MANIFEST.MF` en la raíz de un archivo zip
También usamos gradle para construir proyectos GWT
y la salida que hemos definido para esos proyectos es zip
. Me gustaría incluir un archivo MANIFEST.MF
en la raíz de ese archivo zip.
He intentado utilizar una tarea de type: Jar
para que pueda usar su propiedad manifest
, pero el problema, por supuesto, es que el archivo de manifiesto está escrito en META-INF/MANIFEST.MF
, que no quiero. La razón es que descomprimimos el archivo en la aplicación principal y necesito poder hacer referencia al archivo MANIFEST.MF
en tiempo de ejecución para mis propios nefastos propósitos.
Así que en este momento el archivo tiene el siguiente aspecto:
/gwtdirectory/
/gwtdirectory/file1
/gwtdirectory/file2
/gwtdirectory/...
/gwtdirectory/filen
Y necesito que tomó como esto:
/gwtdirectory/
/gwtdirectory/MANIFEST.MF
/gwtdirectory/file1
/gwtdirectory/file2
/gwtdirectory/...
/gwtdirectory/filen
Ya he recibido con éxito que se vea como:
/gwtdirectory/
/gwtdirectory/META-INF/MANIFEST.MF
/gwtdirectory/file1
/gwtdirectory/file2
/gwtdirectory/...
/gwtdirectory/filen
A través de una definición como:
task pack(type: Jar){
manifest {
attributes(...)
}
extension = 'zip'
from gwt.destinationDir
}
El método writeTo
parece muy prometedor, excepto que no puedo encontrar una implementación de esa interfaz que pueda usar y estoy tratando de evitar escribir la mía.
¿Pensamientos?
'Jar' task tiene' getManifest() 'que devuelve la implementación' Manifest'. Así que supongo que deberías poder hacer 'pack (type: Jar) {manifest.writeTo (...)}'. – rodion