2016-03-21 7 views
4

Ich benutze Ubuntu 14.04 und ext4 Dateisystem, das Dateinamen nicht länger als 143 Zeichen erlaubt. Es gibt eine Abhängigkeit, die aufgrund eines langen Dateinamens ein Problem verursacht. Hier sind weitere Details:Gradle: Konnte nicht ZIP wegen des Dateinamens zu lang erweitern

* Exception is: 
org.gradle.api.tasks.TaskExecutionException: Execution failed for task {task-name} 
at ... 
Caused by: org.gradle.api.GradleException: Could not expand ZIP '/home/{username}/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/1.3.2.RELEASE/dbd3d19d62e588b7fd495e8a3071ff076d0f74d5/spring-boot-autoconfigure-1.3.2.RELEASE.jar'. 
at ... 
Caused by: org.gradle.api.GradleException: Could not copy zip entry /home/{username}/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/1.3.2.RELEASE/dbd3d19d62e588b7fd495e8a3071ff076d0f74d5/spring-boot-autoconfigure-1.3.2.RELEASE.jar!org/springframework/boot/autoconfigure/mobile/DeviceDelegatingViewResolverAutoConfiguration$DeviceDelegatingViewResolverConfiguration$ThymeleafViewResolverViewResolverDelegateConfiguration.class to '/home/{username}/{path-to-project}/build/tmp/expandedArchives/spring-boot-autoconfigure-1.3.2.RELEASE.jar_b7o429q11e8neo97xwl2h3jny/org/springframework/boot/autoconfigure/mobile/DeviceDelegatingViewResolverAutoConfiguration$DeviceDelegatingViewResolverConfiguration$ThymeleafViewResolverViewResolverDelegateConfiguration.class'. 
at ... 
Caused by: java.io.FileNotFoundException: /home/{userame}/{path-to-project}/build/tmp/expandedArchives/spring-boot-autoconfigure-1.3.2.RELEASE.jar_b7o429q11e8neo97xwl2h3jny/org/springframework/boot/autoconfigure/mobile/DeviceDelegatingViewResolverAutoConfiguration$DeviceDelegatingViewResolverConfiguration$ThymeleafViewResolverViewResolverDelegateConfiguration.class (File name too long) 

Gradle-Version ist 2.12. Einige andere Fragen haben vorgeschlagen, die Variable GRADLE_USER_HOME so zu ändern, dass sie auf einen unverschlüsselten Speicherort verweist. Mein gesamtes System scheint jedoch verschlüsselt zu sein und unterstützt daher keine Namen mit mehr als 143 Zeichen.

Gibt es eine Problemumgehung?

+0

Hallo Ivaylo, da diese Frage jetzt ein paar Monate alt ist, habe ich mich gefragt, ob Sie in der Zwischenzeit einen Weg gefunden haben, dieses Problem zu lösen? Ich habe das gleiche Problem auf meinem System. – mdewit

+0

Ich sah, dass Sie das Problem bereits gelöst haben. Ich habe einen Workaround gefunden, aber keinen sehr ordentlichen. Ich habe einfach einen neuen Benutzer mit unverschlüsseltem Dateisystem erstellt. Keine echte Lösung, aber da es ein Universitätsprojekt war, war es gut genug. –

Antwort

0

Ok habe einen Workaround für mich gefunden, es ist das Spring Boot Gradle Plugin zu verwenden.

Folgendes an der Spitze des Skripts hinzufügen:

buildscript { 
    dependencies { 
     classpath "org.springframework.boot:spring-boot-gradle-plugin:1.2.1.RELEASE" 
    } 
} 

apply plugin: 'java' 
apply plugin: "spring-boot" 

Eine Aufgabe „bootRepackage“ genannt wird nun zu einem Projekt hinzugefügt werden. Wenn Sie (die offensichtlichen Eigenschaften etc Setup) eine benutzerdefinierte jar Aufgabe haben, fügen Sie die folgende aswell:

bootRepackage.withJarTask = jar 

Nun, wenn Sie laufen:

gradle bootRepackage 

Es nehmen alle abhängigen Gläser und Paket es mit Ihrem Anwendungsglas in ein größeres Glas. Wenn Sie eine Haupt-Methode in Ihrer benutzerdefinierten jar Aufgabendefinition angegeben ist, dann können Sie jetzt das Glas laufen normalerweise:

java -jar build/lib/somejar.jar

Beachten Sie, dass die Anwendung durch Feder Boot starten. Hoffe das hilft.

Verwandte Themen