Добавьте более 65535 записей jar в Spring boot - PullRequest
0 голосов
/ 01 июня 2018

Я создал пользовательское семантическое сходство между алгоритмами предложений.Проект создал 65535 записей jar, так как он содержит 100 000 слов.Я добавил пользовательский jar в свой весенний загрузочный проект, используя «mvn install: install-file», и создал загрузочный jar, но всякий раз, когда я запускаю проект, я получаю эту ошибку.

Exception in thread "main" java.lang.IllegalStateException: Failed to get nested archive for entry BOOT-INF/lib/semantics-1.0.jar
    at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:109)
    at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchives(JarFileArchive.java:87)
    at org.springframework.boot.loader.ExecutableArchiveLauncher.getClassPathArchives(ExecutableArchiveLauncher.java:72)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:49)
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
Caused by: java.io.IOException: Unable to open nested jar file 'BOOT-INF/lib/semantics-1.0.jar'
    at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:252)
    at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:237)
    at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:104)
    ... 4 more
Caused by: java.lang.IllegalStateException: Zip64 archives are not supported
    at org.springframework.boot.loader.jar.CentralDirectoryEndRecord.getNumberOfRecords(CentralDirectoryEndRecord.java:124)
    at org.springframework.boot.loader.jar.JarFileEntries.visitStart(JarFileEntries.java:91)
    at org.springframework.boot.loader.jar.CentralDirectoryParser.visitStart(CentralDirectoryParser.java:88)
    at org.springframework.boot.loader.jar.CentralDirectoryParser.parse(CentralDirectoryParser.java:56)
    at org.springframework.boot.loader.jar.JarFile.<init>(JarFile.java:118)
    at org.springframework.boot.loader.jar.JarFile.<init>(JarFile.java:106)
    at org.springframework.boot.loader.jar.JarFile.createJarFileFromFileEntry(JarFile.java:290)

 at org.springframework.boot.loader.jar.JarFile.createJarFileFromEntry(JarFile.java:260)
    at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:248)
    ... 6 more 

Ответы [ 3 ]

0 голосов
/ 01 июня 2018

Spring boot не будет поддерживать более 65534 файлов в банке.Вот их код.

public int getNumberOfRecords() {
        long numberOfRecords = Bytes.littleEndianValue(this.block, this.offset + 10, 2);
        if (numberOfRecords == 0xFFFF) {
            throw new IllegalStateException("Zip64 archives are not supported");
        }
        return (int) numberOfRecords;
    }

Так как файл данных хранится вне jar, это также сократит время сборки.

0 голосов
/ 06 июня 2018

Я знаю, что это не очень хорошая практика, но мой весенний проект работает нормально, так как я включил весь пакет зависимостей в весенний проект, вместо того чтобы создать банку этой зависимости и затем импортировать ее.

0 голосов
/ 01 июня 2018

См. https://github.com/spring-projects/spring-boot/issues/2895

Ключевая ошибка:

Caused by: java.lang.IllegalStateException: Zip64 archives are not supported

55 МБ не требует формата Zip64, вам, вероятно, следует изменить способ создания файла.

...