Spécifier des dépendances en Java

Vous pouvez écrire des fonctions Cloud Functions en Java à l'aide de n'importe quelle bibliothèque Java compatible avec l'environnement d'exécution Java 11. Vous pouvez utiliser Maven ou Gradle pour gérer les dépendances de vos fonctions Cloud Functions pour Java.

Déclarer et gérer les dépendances

Vous pouvez déclarer et gérer les dépendances à l'aide de Maven ou de Gradle :

  • Pour gérer les dépendances à l'aide de Maven, vous devez les spécifier dans la section <dependencies> du fichier pom.xml de votre projet.

  • Pour gérer les dépendances à l'aide de Gradle, vous devez les spécifier dans le fichier build.gradle de votre projet.

Utiliser les bibliothèques clientes Google Cloud pour Java

Les bibliothèques clientes Google Cloud pour Java fournissent un accès idiomatique aux services Google Cloud. Pour utiliser une bibliothèque, déclarez-la en tant que dépendance.

En règle générale, vous ne déclarez des dépendances que pour les bibliothèques spécifiques dont votre fonction a besoin. Exemple :

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

Gradle

Notez que ce fichier build.gradle inclut une tâche personnalisée pour vous aider à exécuter des fonctions localement. Pour en savoir plus sur les tests en local, consultez la page Votre première fonction : 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.1'

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

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