java - Gradle CLI 构建在 Spring Boot 的 Jar Writer 上失败

标签 java spring spring-boot build.gradle

错误信息:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':bootRepackage'.
> MALFORMED

* Try:
Run with --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':bootRepackage'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)

....

Caused by: java.lang.IllegalArgumentException: MALFORMED
        at org.springframework.boot.loader.tools.JarWriter.writeEntries(JarWriter.java:92)
        at org.springframework.boot.loader.tools.Repackager.repackage(Repackager.java:144)

设置:
Java 版本:
Java 版本“1.8.0_31”
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64 位服务器 VM(构建 25.31-b07,混合模式)

build.gradle

import org.apache.tools.ant.filters.ReplaceTokens
import java.util.Date

def profile = "PROD";


buildscript {
    ext {
        springBootVersion = '1.0.2.RELEASE' //**have tried with 1.2.4 as well**
    }
    repositories {
        mavenLocal()
        mavenCentral()
        maven { url "http://repo.spring.io/release" }
        maven { url "http://repo.spring.io/milestone" }
        maven { url "http://repo.spring.io/snapshot" }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'

mainClassName = "dk.api.gas.Gas"
compileJava.options.encoding = 'UTF-8'
sourceCompatibility = 1.7
targetCompatibility = 1.7

compileJava.options.encoding = "UTF-8"

jar {
    baseName = 'quotes'
    version =  '1.0.0'
}

repositories {
    mavenCentral()
    maven {
        url "http://repo.springsource.org/libs-snapshot"
    }
    maven {url "http://xxxxx.compute.amazonaws.com/artifactory/gradle/"
        credentials {
            username 'xx'
            password 'xxxx'
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')

    compile("org.springframework.boot:spring-boot-starter-aop:${springBootVersion}")

    compile("com.fasterxml.jackson.core:jackson-databind")
    compile('dk.mobile:fileStorageLib:1.4.0')
            {
                exclude module: 'dk.mobile:common'
            }


    compile('dk.mobile:common:2.0.0')
    compile('dk.mobile:mail:1.0.5')

    compile('dk.mobile:update:1.1.0')
            {
                exclude module: 'dk.mobile:common'
            }
    compile('org.apache.solr:solr-solrj:3.1.0')


    compile('dk.mobile:authentication:1.3.0')
            {
                exclude module: 'dk.mobile:common'
            }

    compile('com.googlecode.charts4j:charts4j:1.3')

    compile('org.apache.poi:poi-ooxml:3.12')
}
def getDate() {
    def date = new Date()
    def formattedDate = date.format('dd.MM.yyy - HH:mm:ss')
    return formattedDate
}



processResources {

    filter ReplaceTokens, tokens: ["AppProfile": profile ]


}



task wrapper(type: Wrapper) {
    gradleVersion = '1.11'
}

最佳答案

我在 Windows 上构建时遇到了同样的问题。 问题是我的文件名称很长,所以它们的路径超过了 256 个字符,导致压缩崩溃和 bootRepackage 失败。

另一方面,在 Linux 上构建相同的应用程序没有任何问题。

希望这对您有所帮助。

关于java - Gradle CLI 构建在 Spring Boot 的 Jar Writer 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31115914/

相关文章:

java - 如何从 thymeleaf 获取输入而不出现模糊处理程序错误?

java - 如何将数据从服务器(REST api 响应)推送/发送到 jsp/html 表单

java - 将 Spring boot 容器连接到 Mongo 容器 : java.net.UnknownHostException : mongo: System error?

java - mapFragment.getMapAsync 中的 NullPointerException

java - 如何将 java 数组字符串分配给 javascript 数组字符串?

java - 新的 Spring 项目构建失败

mysql - 直接从登陆页面单击“忘记密码”时出现错误“找不到网址”

eclipse - sts 中新 spring 项目的包资源管理器中缺少 "maven dependencies"选项

java - 将 String.endsWith(..) 与正则表达式等效项进行比较

java - 由于 apache ant 上的 crashlytics 构建错误,应用程序崩溃