2017-02-22 11 views
0

Использование zip64 true не создает полезный файл jar. Он не может найти основной класс внутри этой банки, хотя файл, структура и расположение Manifest.mf точно такие же, как в предыдущих сборках, которые работали.Gradle + Spring Boot не может обрабатывать банки с более чем 65535 файлами

Настоящая проблема в том, что я не нуждаюсь в sonarqube или gatling в моей последней сборке (те, которые связаны с тестированием), но AFAIK не существует способа исключить плагины.

«fatJar» -задача предназначена для создания банки.

Любая помощь очень ценится.

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 и удалите свою собственную задачу с жирным банком. –

+0

@ M.Deinum Мы также проводим тесты с использованием градиента. Все в сценарии докеров. Я не уверен, но я думаю, что делать это «в командной строке» - непростая задача? – codepleb

+0

Что с этим связано с использованием плагина для загрузки весны. Как и было предложено, удалите задачу кустарника с использованием правильных плагинов. –

ответ

0

Благодаря M.Deinum, я сделал новый подход:

я добавил пружинные ботинки как плагин в build.gradle

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

и теперь можно просто использовать gradle build в консоли, чтобы получить запущенную банку, которая может b e найдено в ./build/libs/.

Смежные вопросы