Cloud

plybuild supports cloud configuration for some of its more advanced features. A cloud configuration is simply an available git repository referred to in the local config file ~/.plybuild/local-config.yaml. An example is shipped with plybuild at https://github.com/plybuild/plybuild-config.

Requirements

The requirements for the cloud config repository is that there exists a template folder, and a deprecated.json and services.json,file on the root level.

Example - Deprecated.json

{
  "type": "deprecated",
  "data": {
    "dependencies": [
      {
        "groupId": "log4j",
        "artifactId": "log4j",
        "files": ["src/main/resources/log4j.properties"],
        "associated": {
          "files": ["src/main/resources..."],
          "dependencies": [
            {
              "groupId": "org.slf4j",
              "artifactId": "slf4j-log4j12",
              "files": ["src/main/resources..."]
            }
          ]
        },
        "replacement_templates": ["logstash-logback"]
      }
    ]
  }
}

Example - Services.json

{
  "type": "services",
  "data": [
    {
      "groupId": "com.example",
      "artifactId": "flyway-demo",
      "defaultEnvironment": "prod",
      "environments": [
        {
          "name": "prod",
          "_links": {
            "info": {
              "href": "http://localhost:8080/actuator/info"
            }
          }
        },
        {
          "name": "staging",
          "_links": {
            "info": {
              "href": "http://localhost:8081/actuator/info"
            }
          }
        }
      ]
    }
  ]
}

Example - Project-defaults.json

This file is overriding the project settings for each working project. disableUpdatesFor, and maxVersionForDependencies adds to the existing plybuild.json file.

{
  "type": "project-defaults",
  "settings": {
    "disableDependencySort": false,
    "disableKotlinUpgrade": false,
    "disableSpringBootUpgrade": false,
    "disableUpgradesFor": [
      {
        "groupId": "com.example",
        "artifactId": "artifactId"
      }
    ],
    "maxVersionForDependencies": [
      {
        "groupId": "com.example",
        "artifactId": "artifactId",
        "maxVersion": "0.0.1"
      }
    ]
  }
}