tutorial - spring-web maven




error de primavera durante la construcción (6)

Añadir salida de depuración cuando se ejecuta maven. Te mostrará qué tarro está roto. Eliminar solo ese.

Tengo que hacer un pequeño sitio web usando la spring . así que elegí el spring template project luego el new spring mvc project lo new spring mvc project sea ​​que intente hay un error que ocurrió

Errors occurred during the build.
Errors running builder 'Maven Project Builder' on project 'mTime'.Errors occurred during the build.
Errors running builder 'Maven Project Builder' on project 'mTime'.
Could not calculate build plan: Failed to parse plugin descriptor for org.apache.maven.plugins:maven-war-plugin:2.1.1 (C:\Users\User01\.m2\repository\org\apache\maven\plugins\maven-war-plugin\2.1.1\maven-war-plugin-2.1.1.jar): invalid LOC header (bad signature)
Failed to parse plugin descriptor for org.apache.maven.plugins:maven-war-plugin:2.1.1 (C:\Users\User01\.m2\repository\org\apache\maven\plugins\maven-war-plugin\2.1.1\maven-war-plugin-2.1.1.jar): invalid LOC header (bad signature)
Could not calculate build plan: Failed to parse plugin descriptor for org.apache.maven.plugins:maven-war-plugin:2.1.1 (C:\Users\User01\.m2\repository\org\apache\maven\plugins\maven-war-plugin\2.1.1\maven-war-plugin-2.1.1.jar): invalid LOC header (bad signature)
Failed to parse plugin descriptor for org.apache.maven.plugins:maven-war-plugin:2.1.1 (C:\Users\User01\.m2\repository\org\apache\maven\plugins\maven-war-plugin\2.1.1\maven-war-plugin-2.1.1.jar): invalid LOC header (bad signature)

Sé que maven está incluido en spring framework , y cuando reviso el directorio, los archivos están ahí.

¿Cómo puedo solucionar este error?



Para mí ejecutar el siguiente script varias veces funcionó. Busca problemas de línea de encabezado CEN y LOC en el resultado de mvn y solicita la eliminación de los frascos uno por uno. Después de algunas eliminaciones y repeticiones, las cosas deberían funcionar nuevamente. No me atreví a automatizar completamente.

#!/bin/sh
# fix issues like:
#[ERROR] error: error reading /Users/wf/.m2/repository/org/docx4j/xhtmlrenderer/1.0.0/xhtmlrenderer-1.0.0.jar; invalid LOC header (bad signature)
# WF 2013-10-27
mvnlog=/tmp/mvnlog$$
mvnproblem=/tmp/mvnproblem$$
mvn install | tee $mvnlog
grep "invalid ... header" $mvnlog > $mvnproblem
for culprit in `cat $mvnproblem | cut -d" " -f5  | cut -d ";" -f1`
do
  echo "fix mvn LOC header issue with $culprit? yes/no/abort"
    read answer
    case $answer in
      y*|Y*) rm $culprit;;
        n*|N*) ;;
        *) exit 1;
    esac
done
rm -f $mvnproblem
rm -f $mvnlog

Prueba esto :

find ~/.m2  -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;

Según mi experiencia, el invalid LOC header (bad signature) probablemente se deba a que el archivo .jar descargado está dañado.

Si tiene una conexión a Internet lenta, en lugar de eliminar todo el repositorio de Maven, puede intentar eliminar la carpeta que contiene el archivo problemático de acuerdo con las sugerencias del mensaje de error (es decir, C:\Users\User01\.m2\repository\org\apache\maven\plugins\maven-war-plugin\2.1.1\ ). Luego use mvn clean install -U para volver a descargar las dependencias.


Si no desea eliminar completamente su repositorio local de maven, use lo siguiente para encontrar los artefactos rotos y eliminarlos:

public static void main(String[] args) throws IOException {
    findBrokenZip(Paths.get(System.getProperty("user.home") + "/.m2/repository"));
}

static void findBrokenZip(Path path) throws IOException {
    try (DirectoryStream<Path> stream = Files.newDirectoryStream(path)) {
        for (Path entry : stream) {
            if (Files.isDirectory(entry)) {
                findBrokenZip(entry);
            } else {
                if (entry.getFileName().toString().endsWith(".jar")) {
                    try (JarFile zipFile = new JarFile(entry.toFile())) {
                        zipFile.getManifest();
                    } catch (ZipException e) {
                        Files.delete(entry);
                    }
                }
            }
        }
    }
}




spring-mvc