构建 Java 应用

指定 Java 版本

默认情况下,系统会使用最新版本的 Java 11。如果您的应用需要特定版本,则可以使用 GOOGLE_RUNTIME_VERSION 环境变量指定 JDK 版本:

pack build sample-java --builder=gcr.io/buildpacks/builder \
  --env GOOGLE_RUNTIME_VERSION=17

您还可以使用 project.toml 项目描述符对环境变量以及项目文件进行编码。请参阅使用环境变量构建应用中的说明。

管理依赖项

使用 Maven 或 Gradle 的项目支持依赖项配置。

配置 Maven

可以使用 MAVEN_OPTS 环境变量来应用 Maven 配置。 如需更多说明,请参阅文档

示例:

  • MAVEN_OPTS=-Xms256m -Xmx512m 会将这些标志传递给运行 Maven 的 JVM。
  • 用于禁止 Maven 显示“非法反射访问权限”警告的 MAVEN_OPTS=--add-opens java.base/java.lang=ALL-UNNAMED

如需管理项目对 Maven 本身的依赖项,您可以使用 Maven 封装容器。如果您不使用 Maven 封装容器,则 buildpack 在运行 pack build 时默认使用最新版本的 Maven。

配置 Gradle

可以使用 GRADLE_OPTS 环境变量来应用 Gradle 配置。如需更多说明,请参阅文档

示例:

GRADLE_OPTS=-Xms256m -Xmx512m 会将这些标志传递给运行 Gradle 的 JVM。

Google Cloud 托管的 Maven Central 镜像

可通过指定可用的网址来使用 Maven Central 的托管镜像。

在 Maven 中镜像代码库

如需配置镜像,请按照 Maven 项目文档中的使用镜像作为代码库说明操作。

settings.xml~/.m2/settings.xml 的默认位置复制到应用源目录中,并指定 GOOGLE_BUILD_ARGS=--settings <path/to/settings>

注意相对于源目录。

settings.xml 文件示例:

<settings>
  <mirrors>
    <mirror>
      <id>google-maven-central</id>
      <name>Cloud Storage Maven Central mirror</name>
      <url>https://maven-central.storage-download.googleapis.com/maven2/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
</settings>

在 Gradle 中镜像代码库

如需配置镜像,请按照 Gradle 项目文档中的声明代码库说明操作。

示例 build.gradle 条目:

  repositories {
      maven {
          url "https://maven-central.storage-download.googleapis.com/maven2/"
      }
  }