2017-02-22 84 views
0

使用zip64 true不會創建可用的jar文件。雖然Manifest.mf的文件,結構和位置與以前的工作版本完全相同,但它無法在該jar中找到主類。Gradle + Spring Boot無法處理超過65535個文件的罐子

真正的問題是:我不需要sonarqube或gatling在我的最終版本(這些都是測試相關的),但AFAIK沒有辦法排除插件。

「fatJar」任務是創建jar。

任何形式的幫助,高度讚賞。

plugins { 
    id "org.sonarqube" version "2.2.1" 
    id "com.github.lkishalmi.gatling" version "0.4.1" 
} 

// Run in terminal with "gradle sonarqube" 
sonarqube { 
    properties { 
     property "sonar.projectName", "asd" 
     property "sonar.projectKey", "org.sonarqube:java-gradle-simple" 
     property "sonar.host.url", "http://asd" 
     property "sonar.login", "asd" 
     property "sonar.password", "asd" 
    } 
} 

// Run in terminal with "gradle gatlingrun", start the application before. 
gatling { 
    logLevel 'ERROR' 
    simulations = { 
     include "**/LoginAndSync.scala" 
    } 
} 

group 'asd' 
version '1.0-SNAPSHOT' 

apply plugin: 'java' 

sourceCompatibility = 1.8 

repositories { 
    mavenCentral() 
} 

task fatJar(type: Jar) { 
    //zip64 true 
    manifest { 
     attributes 'Implementation-Title': 'Gradle Jar File Example', 
       'Implementation-Version': version, 
       'Main-Class': 'application.Asd' 
    } 
    baseName = project.name + '-all' 
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } 
    with jar 
} 

dependencies { 
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '1.4.1.RELEASE' 
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '1.4.1.RELEASE' 
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: '1.4.1.RELEASE' 
    compile group: 'org.springframework', name: 'spring-orm', version: '4.3.3.RELEASE' 
    compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' 
    compile group: 'com.amazonaws', name: 'aws-java-sdk', version: '1.11.80' 
    compile group: 'io.gatling.highcharts', name: 'gatling-charts-highcharts', version: '2.2.3' 

    testCompile group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: '1.4.1.RELEASE' 
    testCompile group: 'com.h2database', name: 'h2', version: '1.4.193' 
    testCompile group: 'junit', name: 'junit', version: '4.12' 
    testCompile group: 'org.springframework.security', name: 'spring-security-test', version: '4.0.0.RELEASE' 
} 

這是例外,我得到:

xecution failed for task ':fatJar'. 
> archive contains more than 65535 entries. 

    To build this archive, please enable the zip64 extension. 
    See: https://docs.gradle.org/3.3/dsl/org.gradle.api.tasks.bundling.Zip.html#org.gradle.api.tasks.bundling.Zip:zip64 
+0

您正在使用Spring Boot爲什麼要創建自己的胖罐?使用Spring Boot插件並刪除自己的fat-jar任務。 –

+0

@ M.Deinum我們也使用gradle運行測試。全部在碼頭腳本中。我不確定,但我認爲在命令行中這樣做並不是一件容易的事情? – codepleb

+0

使用spring啓動插件有什麼作用。如上所示,使用正確的插件刪除fat jar任務。 –

回答

0

感謝M.Deinum,我做了一個新的方法:

我加了彈簧的引導作爲插件在build.gradle

plugins { 
    id 'org.springframework.boot' version '1.5.1.RELEASE' 
} 

並且現在可以在控制檯中使用gradle build來獲得一個正在運行的jar,它可以b發現在./build/libs/