static CloudSdk buildCloudSdk()

in app-maven-plugin/src/main/java/com/google/cloud/tools/maven/cloudsdk/CloudSdkAppEngineFactory.java [116:155]


  static CloudSdk buildCloudSdk(
      CloudSdkMojo mojo,
      CloudSdkChecker cloudSdkChecker,
      CloudSdkDownloader cloudSdkDownloader,
      boolean requiresAppEngineComponents) {

    try {
      if (mojo.getCloudSdkHome() != null) {
        // if user defined
        CloudSdk cloudSdk = new CloudSdk.Builder().sdkPath(mojo.getCloudSdkHome()).build();

        if (mojo.getCloudSdkVersion() != null) {
          cloudSdkChecker.checkCloudSdk(cloudSdk, mojo.getCloudSdkVersion());
        }
        if (requiresAppEngineComponents) {
          cloudSdkChecker.checkForAppEngine(cloudSdk);
        }
        return cloudSdk;
      } else {
        // we need to use a managed cloud sdk
        List<SdkComponent> requiredComponents = new ArrayList<>();
        if (requiresAppEngineComponents) {
          requiredComponents.add(SdkComponent.APP_ENGINE_JAVA);
        }
        return new CloudSdk.Builder()
            .sdkPath(
                cloudSdkDownloader.downloadIfNecessary(
                    mojo.getCloudSdkVersion(),
                    mojo.getLog(),
                    requiredComponents,
                    mojo.getMavenSession().isOffline()))
            .build();
      }
    } catch (CloudSdkNotFoundException
        | CloudSdkVersionFileException
        | AppEngineJavaComponentsNotInstalledException
        | CloudSdkOutOfDateException ex) {
      throw new RuntimeException(ex);
    }
  }