code: public static final Version create(int major, int minor, int patch,
              String preRelease) {
          return create(major, minor, patch, preRelease, "");
      }
docs: Creates a new Version from the provided components. The version's build meta data
  field will be empty. Neither value of {@code major, minor} or {@code patch} must be
  lower than 0 and at least one must be greater than zero. {@code preRelease} may be
  the empty String. In this case, the created version will have no pre release field.
  If it is not empty, it must conform to the specifications of the semantic version.
  
  @param major The major version.
  @param minor The minor version.
  @param patch The patch version.
  @param preRelease The pre release version or the empty string.
  @return The version instance.
  @throws VersionFormatException If {@code preRelease} is not empty and does not
  conform to the semantic versioning specification