Specifica le dipendenze in Java

Puoi utilizzare qualsiasi libreria compatibile con Java con un runtime Java supportato per scrivere Cloud Functions in Java. Puoi utilizzare uno dei seguenti metodi: Maven o Gradle per gestire le dipendenze per le tue funzioni Cloud Functions Java.

Dichiarazione e gestione delle dipendenze

Puoi dichiarare e gestire le dipendenze utilizzando Maven o Gradle:

  • Per gestire le dipendenze utilizzando Maven:

    • Specifica le dipendenze nella sezione <dependencies> all'interno del pom.xml del progetto.

    • Per gestire la dipendenza del progetto da Maven, puoi utilizzare Wrapper Maven. Se non utilizzi Wrapper Maven, Cloud Functions utilizza per impostazione predefinita una versione recente di Maven durante l'esecuzione di gcloud functions deploy.

  • Per gestire le dipendenze utilizzando Gradle, devi specificare le dipendenze nel build.gradle del progetto.

Il framework delle funzioni è un la dipendenza richiesta per tutte le funzioni. Sebbene Cloud Functions lo installi per tuo conto quando viene creata la funzione, ti consigliamo includerla come dipendenza esplicita per maggiore chiarezza.

Se le tue si basa su dipendenze private, ti consigliamo di esegui il mirroring di functions-framework nel tuo registro privato. Includi lo stato functions-framework come dipendenza dalla tua funzione per evitare di installare il componente dalla rete internet pubblica.

Utilizzo delle librerie client di Google Cloud per Java

Librerie client di Google Cloud per Java fornisce un accesso idiomatico ai servizi Google Cloud. Per utilizzare una libreria, dichiarala come dipendenza.

In genere dichiari le dipendenze solo nelle librerie specifiche che tutte le funzioni. Ad esempio:

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.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.1.0</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.11.0</version>
        <configuration>
          <functionTarget>functions.HelloWorld</functionTarget>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

Gradle

Tieni presente che questo file build.gradle include un'attività personalizzata per aiutarti a eseguire funzioni localmente. Per ulteriori informazioni sui test locali, consulta Il tuo team Funzione: 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.1.0'

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

  // These dependencies are only used by the tests.
  testImplementation 'com.google.cloud.functions:functions-framework-api:1.1.0'
  testImplementation 'junit:junit:4.13.2'
  testImplementation 'com.google.truth:truth:1.4.0'
  testImplementation 'org.mockito:mockito-core:5.10.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)
  }
}