code: public Version withBuildMetaData(String newBuildMetaData) {
          require(newBuildMetaData != null, "newBuildMetaData is null");
          final String[] newBuildMdParts = parseBuildMd(newBuildMetaData);
          return new Version(this.major, this.minor, this.patch, this.preReleaseParts,
                  newBuildMdParts);
      }
docs: Creates a new Version from this one, replacing only the build-meta-data part with
  the given String. All other parts will remain the same as in this Version. You can
  remove the build-meta-data part by passing an empty String.
  
  @param newBuildMetaData The new build meta data identifier.
  @return A new Version.
  @throws VersionFormatException If the given String is not a valid build-meta-data
  identifier.
  @throws IllegalArgumentException If newBuildMetaData is null.
  @since 1.1.0