public static @Nullable String dependencyHash(@Nullable MavenProject project) {
    if (null == project) return null;

    Model model = project.getModel();
    if (null == model) return null;

    List<Dependency> dependencies = model.getDependencies();
    if (null == dependencies) return null;

    if (dependencies.isEmpty()) return "";

    StringBuffer stringBuffer = new StringBuffer();
    for (Dependency dependency : dependencies) {
      append(stringBuffer, dependency.getGroupId());
      append(stringBuffer, dependency.getArtifactId());
      append(stringBuffer, dependency.getVersion());
      append(stringBuffer, dependency.getType());
      append(stringBuffer, dependency.getClassifier());
      append(stringBuffer, dependency.getScope());
      append(stringBuffer, dependency.getSystemPath());

      List<Exclusion> exclusions = dependency.getExclusions();
      if (null != exclusions) {
        for (Exclusion exclusion : exclusions) {
          append(stringBuffer, exclusion.getArtifactId());
          append(stringBuffer, exclusion.getGroupId());
        }
      }

      append(stringBuffer, dependency.getOptional());
    }

    return ChecksumUtil.checksum(stringBuffer.toString());
  }
public static @Nullable String dependencyHash(@Nullable MavenProject project)