2016-06-22 135 views
3

我的.jar与弹簧引导加载器运行内部嵌套项:无法打开的.jar

apply plugin: 'spring-boot' 

jar { 
    into('lib') { 
     from configurations.runtime 
    } 
    manifest { 
     attributes("Implementation-Vendor": "tttt", 
      "Implementation-Title": project.name, 
      "Implementation-Version": version, 
      "Implementation-Vendor-Id": "tttt", 
      "Built-By": "Administrator", 
      "Build-Jdk": "1.7.0_101", 
      "Start-Class": "org.cp.Application", 
      "Spring-Boot-Version": "1.3.3.RELEASE", 
      "Main-Class": "org.springframework.boot.loader.JarLauncher") 
    } 
} 

我跑我的体型:

:ttt:compileJava 
:ttt:processResources 
:ttt:classes 
:ttt:findMainClass 
:ttt:jar 
:ttt:bootRepackage 
:ttt:assemble 
:ttt:check 
:ttt:build 

Java的罐子tttt.jar:

java.lang.IllegalStateException: Unable to open nested entry 'lib/spring-boot-starter-1.3.3.RELEASE.jar'. It has been compressed and nested jar files must be stored without compression. Please check the mechanism used to create your executable jar file 
at org.springframework.boot.loader.jar.JarFile.createJarFileFromFileEntry(JarFile.java:382) 
at org.springframework.boot.loader.jar.JarFile.createJarFileFromEntry(JarFile.java:357) 
at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:343) 
at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:112) 
at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchives(JarFileArchive.java:96) 
at org.springframework.boot.loader.ExecutableArchiveLauncher.getClassPathArchives(ExecutableArchiveLauncher.java:75) 
at org.springframework.boot.loader.Launcher.launch(Launcher.java:60) 
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52) 

我将spring.boot.loader手动分解到src/main/resources中,如果这意味着什么的话。我在这里做错了什么?

回答

0

您无法在JAR中执行Jar。如果您需要这样做,那么您必须将相关的JAR添加到环境变量&中以利用它。

+0

我不知道我是否正确地问了我的问题,但使用Maven构建时此工作正常,但不适用于Gradle。 – minas