无法在.jar中打开嵌套条目

时间:2016-06-22 13:14:57

标签: java gradle

我有使用spring boot loader运行的.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 -jar 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,如果这意味着什么的话。我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

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