Repository: GoogleContainerTools/jib
File: jib-maven-plugin/src/main/java/com/google/cloud/tools/jib/maven/MojoCommon.java (Java)

Code before:
    }
    ExecutorService executorService = Executors.newSingleThreadExecutor();
    try {
      return UpdateChecker.checkForUpdate(
          executorService,
          VERSION_URL,
          projectProperties.getToolName(),
          projectProperties.getToolVersion(),
          projectProperties::log);
    } finally {
      executorService.shutdown();
    }
  }

  static void finishUpdateChecker(
      ProjectProperties projectProperties, Future<Optional<String>> updateCheckFuture) {
    UpdateChecker.finishUpdateCheck(updateCheckFuture)
        .ifPresent(
            latestVersion -> {
              String changelogUrl =
                  ProjectInfo.GITHUB_URL + "/blob/master/jib-maven-plugin/CHANGELOG.md";
              String privacyUrl = ProjectInfo.GITHUB_URL + "/blob/master/docs/privacy.md";
              String message =
                  String.format(
                      "\n\u001B[33mA new version of %s (%s) is available (currently using %s). Update your"
                          + " build configuration to use the latest features and fixes!\n%s.\u001B[0m\n\nPlease see"
                          + " %s for info on disabling this update check.\n",
                      projectProperties.getToolName(),
                      latestVersion,
                      projectProperties.getToolVersion(),
                      changelogUrl,
                      privacyUrl);
              projectProperties.log(LogEvent.lifecycle(message));
            });
  }

  /**
   * Gets the list of extra directory paths from a {@link JibPluginConfiguration}. Returns {@code
   * (project dir)/src/main/jib} by default if not configured.
   *
   * @param jibPluginConfiguration the build configuration
   * @return the list of resolved extra directories
   */
  static List<ExtraDirectoryParameters> getExtraDirectories(
      JibPluginConfiguration jibPluginConfiguration) {
    List<ExtraDirectoryParameters> extraDirectories = jibPluginConfiguration.getExtraDirectories();
    if (!extraDirectories.isEmpty()) {
      for (ExtraDirectoryParameters directory : extraDirectories) {
        if (directory.getFrom().equals(Paths.get(""))) {
          throw new IllegalArgumentException(
              "Incomplete <extraDirectories><paths> configuration; source directory must be set");

Review comment (suggestion):
Let's not add `.` after a URL. Some terminal cannot determine if the last `.` should be part of a URL, and clicking on the link in the terminal may lead to 404 page not found.
```suggestion
                          + " build configuration to use the latest features and fixes!\n%s\u001B[0m\n\nPlease see"
```
Check the other messages and make sure we don't add a period.

Code after:
    }
    ExecutorService executorService = Executors.newSingleThreadExecutor();
    try {
      return UpdateChecker.checkForUpdate(
          executorService,
          VERSION_URL,
          projectProperties.getToolName(),
          projectProperties.getToolVersion(),
          projectProperties::log);
    } finally {
      executorService.shutdown();
    }
  }

  static void finishUpdateChecker(
      ProjectProperties projectProperties, Future<Optional<String>> updateCheckFuture) {
    UpdateChecker.finishUpdateCheck(updateCheckFuture)
        .ifPresent(
            latestVersion -> {
              String updateMessage =
                  String.format(
                      "A new version of %s (%s) is available (currently using %s). Update your"
                          + " build configuration to use the latest features and fixes!",
                      projectProperties.getToolName(),
                      latestVersion,
                      projectProperties.getToolVersion());
              String privacyUrl = ProjectInfo.GITHUB_URL + "/blob/master/docs/privacy.md";
              String privacyMessage =
                  String.format(
                      "Please see %s for info on disabling this update check.", privacyUrl);
              projectProperties.log(LogEvent.lifecycle(""));
              projectProperties.log(LogEvent.lifecycle("\u001B[33m" + updateMessage + "\u001B[0m"));
              projectProperties.log(
                  LogEvent.lifecycle(
                      "\u001B[33m"
                          + ProjectInfo.GITHUB_URL
                          + "/blob/master/jib-maven-plugin/CHANGELOG.md\u001B[0m"));
              projectProperties.log(LogEvent.lifecycle(""));
              projectProperties.log(LogEvent.lifecycle(privacyMessage));
              projectProperties.log(LogEvent.lifecycle(""));
            });
  }

  /**
   * Gets the list of extra directory paths from a {@link JibPluginConfiguration}. Returns {@code
   * (project dir)/src/main/jib} by default if not configured.
   *
   * @param jibPluginConfiguration the build configuration
   * @return the list of resolved extra directories
   */
  static List<ExtraDirectoryParameters> getExtraDirectories(