code: public static BuildInfo create(Properties properties) {
      checkNotNull(properties, "properties: null");
      return builder()
          .setArtifactId(
              checkNotNull(properties.getProperty("project.artifactId"), "project.artifactId: null"))
          .setGroupId(
              checkNotNull(properties.getProperty("project.groupId"), "project.groupId: null"))
          .setRawProperties(properties)
          .setScmRevision(
              checkNotNull(properties.getProperty("git.commit.id"), "git.commit.id: null"))
          .setVersion(
              checkNotNull(properties.getProperty("project.version"), "project.version: null"))
          .setBuildDateTime(Optional.ofNullable(properties.getProperty("project.build.date")))
          .build();
    }
docs: Create an instance using the given properties.
  
  <p>Currently, at least the following properties are required:
  <ul>
  <li>git.commit.id</li>
  <li>project.artifactId</li>
  <li>project.groupId</li>
  <li>project.version</li>
  </ul>
  
  <p>Optional properties:
  <ul>
  <li>project.build.date</li>
  </ul>