0

我正在使用 JenkinsX 在 GKE 上为 Spring Boot 应用程序创建 CI/CD 管道。一旦我将代码推送到 master 分支,就会触发构建,但由于 Java 堆空间不足,构建会失败。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:3.2.2:war (default-war) on project location-finder-api: Error assembling WAR: Problem creating war: Execution exception: Java heap space -> [Help 1]

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-war-plugin:3.2.2:war (default-war) on project location-finder-api: Error assembling WAR: Problem creating war: Execution exception
Caused by: java.lang.OutOfMemoryError: Java heap space

    at org.codehaus.plexus.archiver.zip.ByteArrayOutputStream.needNewBuffer (ByteArrayOutputStream.java:153)

    at org.codehaus.plexus.archiver.zip.ByteArrayOutputStream.write (ByteArrayOutputStream.java:192)

为了解决,我尝试将 Docekrfile 中的 JVM 参数设置为

CMD ["java", "-Xmx1024m","-jar", "app.jar"]

但它没有用。这是我在构建开始时看到的

+ mvn -e clean deploy -Pprod

Picked up _JAVA_OPTIONS: -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Dsun.zip.disableMemoryMapping=true -XX:+UseParallelGC -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Xms10m -Xmx192m

OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N

有什么方法可以让我自己设置这个堆选项?

4

1 回答 1

2

看起来 maven 内存不足,因此您的构建 pod 中需要更多内存(而不是应用程序的 Dockerfile)。

作为快速测试,您可以在 Jenkins UI 中编辑 pod 模板:jx console然后在 UI 中Manage Jenkins -> Configure System找到pod 模板并从此值jenkins-maven编辑环境变量: https ://github.com/jenkins-x/jenkins-x-platform /blob/master/jenkins-x-platform/values.yaml#L907 - 尝试更改为更大的东西_JAVA_OPTIONS-Xmx512m-Xmx912m

一旦你找到了一个适用于你的项目的值,你可以通过将它添加到你的myvalues.yaml- 像这样的东西来使 Jenkins 重新启动的更改永久化......

# myvalues.yaml
jenkins:
  Agent:
    PodTemplates:
      Maven:
        Name: maven
        Label: jenkins-maven
        EnvVars:
          _JAVA_OPTIONS: '-XX:+UnlockExperimentalVMOptions -Dsun.zip.disableMemoryMapping=true -XX:+UseParallelGC -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Xms10m -Xmx912m'

请参阅有关创建/配置构建器的文档

于 2019-04-17T06:33:19.137 回答