private void addPropertiesToProject(Project project) {
    Properties projectProperties = new Properties();
    File projectPropertiesFile = new File(project.getProjectDir(), Project.GRADLE_PROPERTIES);
    LOGGER.debug("Looking for project properties from: {}", projectPropertiesFile);
    if (projectPropertiesFile.isFile()) {
      projectProperties = GUtil.loadProperties(projectPropertiesFile);
      LOGGER.debug(
          "Adding project properties (if not overwritten by user properties): {}",
          projectProperties.keySet());
    } else {
      LOGGER.debug("project property file does not exists. We continue!");
    }

    Map<String, String> mergedProperties =
        propertiesLoader.mergeProperties(new HashMap(projectProperties));
    ExtraPropertiesExtension extraProperties =
        new DslObject(project).getExtensions().getExtraProperties();
    for (Map.Entry<String, String> entry : mergedProperties.entrySet()) {
      if (project.hasProperty(entry.getKey())) {
        project.setProperty(entry.getKey(), entry.getValue());
      } else {
        extraProperties.set(entry.getKey(), entry.getValue());
      }
    }
  }