Especifica dependencias en Java

Para escribir Cloud Functions basadas en Java junto con el entorno de ejecución de Java 11, puedes usar cualquier biblioteca compatible con este lenguaje de programación. Puedes usar Maven o Gradle para administrar las dependencias de Cloud Functions en Java.

Declara y administra dependencias

Puedes declarar y administrar dependencias mediante Maven o Gradle:

  • Para administrar dependencias mediante Maven, debes especificarlas en la sección <dependencies> dentro del archivo pom.xml de tu proyecto.

  • Para administrar dependencias mediante Gradle, debes especificarlas en el archivo build.gradle de tu proyecto.

Usa las bibliotecas cliente de Google Cloud para Java

Las bibliotecas cliente de Google Cloud para Java proporcionan acceso idiomático a los servicios de Google Cloud. Para usar una biblioteca, debes declararla como dependencia.

Por lo general, solo declaras dependencias en las bibliotecas específicas que necesita tu función. Por ejemplo:

Maven

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.example.cloud.functions</groupId>
  <artifactId>functions-hello-world</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <properties>
    <maven.compiler.target>11</maven.compiler.target>
    <maven.compiler.source>11</maven.compiler.source>
  </properties>

  <dependencies>
    <!-- Required for Function primitives -->
    <dependency>
      <groupId>com.google.cloud.functions</groupId>
      <artifactId>functions-framework-api</artifactId>
      <version>1.0.4</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <!--
          Google Cloud Functions Framework Maven plugin

          This plugin allows you to run Cloud Functions Java code
          locally. Use the following terminal command to run a
          given function locally:

          mvn function:run -Drun.functionTarget=your.package.yourFunction
        -->
        <groupId>com.google.cloud.functions</groupId>
        <artifactId>function-maven-plugin</artifactId>
        <version>0.9.8</version>
        <configuration>
          <functionTarget>functions.HelloWorld</functionTarget>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

Gradle

Ten en cuenta que el archivo build.gradle incluye una tarea personalizada para ayudarte a ejecutar funciones de forma local. Para obtener más información sobre las pruebas locales, consulta Tu primera función: Java.

apply plugin: 'java'

repositories {
  jcenter()
  mavenCentral()
}
configurations {
    invoker
}

dependencies {
  // Every function needs this dependency to get the Functions Framework API.
  compileOnly 'com.google.cloud.functions:functions-framework-api:1.0.4'

  // To run function locally using Functions Framework's local invoker
  invoker 'com.google.cloud.functions.invoker:java-function-invoker:1.0.3'

  // These dependencies are only used by the tests.
  testImplementation 'com.google.cloud.functions:functions-framework-api:1.0.4'
  testImplementation 'junit:junit:4.13.2'
  testImplementation 'com.google.truth:truth:1.1.3'
  testImplementation 'org.mockito:mockito-core:4.0.0'

}

// Register a "runFunction" task to run the function locally
tasks.register("runFunction", JavaExec) {
  main = 'com.google.cloud.functions.invoker.runner.Invoker'
  classpath(configurations.invoker)
  inputs.files(configurations.runtimeClasspath, sourceSets.main.output)
  args(
    '--target', project.findProperty('run.functionTarget') ?: '',
    '--port', project.findProperty('run.port') ?: 8080
  )
  doFirst {
    args('--classpath', files(configurations.runtimeClasspath, sourceSets.main.output).asPath)
  }
}