Подтвердить что ты не робот

Ошибка spring во время сборки

Мне нужно сделать небольшой сайт с помощью spring. поэтому я выбрал spring template project, затем new spring mvc project все, что я попробовал , произошла ошибка

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)

Я знаю, что maven включен в spring framework, и когда я проверяю каталог, там есть банки.

Как я могу решить эту ошибку?

4b9b3361

Ответ 1

Соответствующая часть сообщения об ошибке:

invalid LOC header (bad signature)

который указывает на повреждение бинарного файла, скорее всего, одну из зависимостей. Если у вас быстрое подключение к Интернету, просто удалите весь репозиторий maven и позвольте maven повторно загрузить все зависимости:

rm -rf ~/.m2/repository/*

См. также

Ответ 2

Из моего опыта, invalid LOC header (bad signature), скорее всего, из-за того, что загруженный .jar файл поврежден.

Если у вас медленное подключение к Интернету, вместо удаления всего репозитория Maven вы можете попытаться удалить папку, содержащую проблемную банку, в соответствии с подсказками сообщения об ошибках (i C:\Users\User01\.m2\repository\org\apache\maven\plugins\maven-war-plugin\2.1.1\). Затем используйте mvn clean install -U для загрузки зависимостей снова.

Ответ 3

для меня работает несколько script несколько раз. Он ищет строку заголовка CEN и LOC проблемы в mvn результате и просит об удалении банки один за другим. После нескольких удалений и повторов необходимо снова работать. Я не решался полностью автоматизировать.

#!/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

Ответ 4

Он бросает, потому что ваш .jar недействителен или поврежден.

Следуйте шагам:

Примечание:.m2 Папка скрыта по умолчанию. UnHide the Folder.

Шаг 1: Удалите все содержимое в папке .m2/репозиторий.

Шаг 2: Перезапустите свое Затмение.

Шаг 3: Maven- > Обновить проект. Проверено - принудительное обновление снимков/выпусков.

Шаг 4: Запустите как Maven Clean.

Шаг 5: Запустите программу Maven Install.

Шаг 6: Очистить проект.

Шаг 7: Запустите проект.

Надеюсь, вы найдёте свое решение здесь.

Спасибо..

Ответ 5

добавить отладочный вывод при запуске maven. Он покажет вам, какая банка сломана. Удалите только один.

Ответ 6

Другим решением для поиска виновника при получении этой ошибки, начиная с Tomcat в Windows или когда вы не можете запустить Wolfgang script, является замена JarResourceSet.class в файле catalina.jar версией, которая имеет дополнительную отладку.

Т.е. google для исходного кода для вашей версии Tomcat и адаптируйте метод initInternal():

    String processingJar = "";

    try (JarFile jarFile = new JarFile(getBase())) {
        processingJar = jarFile.getName();

        ...
    } catch (IOException ioe) {
        System.out.println("Failed with " + processingJar);
        throw new IllegalArgumentException(ioe);
    }

Чтобы построить, ваш путь к классу должен указывать на ваш каталог Tomcat lib, например:

javac -cp C:\apache-tomcat-X.Y.Z\lib\* JarResourceSet.java

Затем используйте 7zip или аналогичную программу, чтобы вставить ее в catalina.jar в соответствующий каталог и запустить Tomcat. Я был поражен тем, что он работал в первый раз, но это произошло. (Тогда вам просто нужно найти, где в вашем репозитории .m2 находится файл-баннер, и удалить и перестроить и т.д.)

Ответ 7

Если вы не хотите полностью удалить локальный репозиторий maven, используйте следующие, чтобы найти сломанные артефакты и удалить их:

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);
                    }
                }
            }
        }
    }
}

Ответ 8

Help -> Install New Softwares

Оттуда установите пакет с веб-разработками, XML, CSS, Java EE... И после этого, если эта встроенная проблема все еще продолжается, используйте команду

rm -rf ~/.m2/repository/*

Ответ 9

Попробуйте следующее:

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