首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我在gradle构建过程中会出现元空间错误?

为什么我在gradle构建过程中会出现元空间错误?
EN

Stack Overflow用户
提问于 2019-02-08 19:15:44
回答 1查看 2.7K关注 0票数 11

在gradle构建过程中,我有时会遇到元空间错误。

在我的gradle配置中,我使用swagger code-gen来生成很多类(~40个)。我想这可能就是问题的来源。

下面是build.gradle文件的摘录

代码语言:javascript
复制
dependencies {
    ...
    implementation("io.swagger:swagger-annotations:1.5.10")
    implementation("io.springfox:springfox-swagger2:2.9.2")
    swaggerCodegen("io.swagger.codegen.v3:swagger-codegen-cli:3.0.0")
}
...
swaggerSources {
    doe1 {
        inputFile = file('src/main/resources/wiremock/gfc/yaml/doe-1.yaml')
        code {
            language = 'spring'
            components = ['models']
            additionalProperties = ["modelPackage": "io.swagger.model.doe1", "invokerPackage": "io.swagger.model"]
        }
    }
    doe2 {
        inputFile = file('src/main/resources/wiremock/gfc/yaml/doe-2.yaml')
        code {
            language = 'spring'
            components = ['models']
            additionalProperties = ["modelPackage": "io.swagger.model.doe2", "invokerPackage": "io.swagger.model"]
        }
    }
    ...

    doe40 {
        inputFile = file('src/main/resources/wiremock/gfc/yaml/doe-40.yaml')
        code {
            language = 'spring'
            components = ['models']
            additionalProperties = ["modelPackage": "io.swagger.model.doe3", "invokerPackage": "io.swagger.model"]
        }
    }
}


compileJava.dependsOn swaggerSources.doe1.code, swaggerSources.doe2.code, ....., swaggerSources.doe40.code
sourceSets.main.java.srcDirs "${swaggerSources.doe1.code.outputDir}/src/main/java", "${swaggerSources.doe2.code.outputDir}/src/main/java", ..., "${swaggerSources.doe40.code.outputDir}/src/main/java"
sourceSets.main.resources.srcDirs "${swaggerSources.doe1.code.outputDir}/src/main/resources", "${swaggerSources.doe2.code.outputDir}/src/main/resources", ..., "${swaggerSources.doe40.code.outputDir}/src/main/resources"

以下是堆栈跟踪的摘录(我将机密内容替换为%)

代码语言:javascript
复制
Testing started at 15:35 ...
15:35:11: Executing tasks 'cleanTest test build ry,exceptions=disable,delay=10000'...

> Configure project :%%%%%repo:%%%%%-common   
> Task :%%%%%repo:%%%%%-%%%:cleanTest UP-TO-DATE
> Task :%%%%%repo:%%%%%-common:cleanTest UP-TO-DATE
.....
> Task :%%%%%repo:%%%%%-common:resolveSwaggerTemplate NO-SOURCE
> Task :%%%%%repo:%%%%%-common:generateSwagger%%%%%%%%%diffusionapi FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':%%%%%repo:%%%%%-common:generateSwagger%%%%%%%%%%%diffusionapi'.
> Metaspace
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':%%%%%repo:%%%%%-common:generateSwaggerCode%%%%diffusionapi'.
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
    at ..
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
    Caused by: java.lang.OutOfMemoryError: Metaspace
    BUILD FAILED in 3s
    26 actionable tasks: 1 executed, 25 up-to-date
    Cause: invalid type code: 5F
EN

回答 1

Stack Overflow用户

发布于 2019-02-14 22:43:29

您可以在gradle.properties中增加分配给gradle的内存:

代码语言:javascript
复制
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54591253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档