{"id":37023250,"url":"https://github.com/edmunds/databricks-maven-plugin","last_synced_at":"2026-01-14T02:47:17.852Z","repository":{"id":43004888,"uuid":"149191272","full_name":"edmunds/databricks-maven-plugin","owner":"edmunds","description":"A maven plugin that allows easy integration with databricks for both development and deployment","archived":false,"fork":false,"pushed_at":"2023-05-09T18:43:08.000Z","size":444,"stargazers_count":6,"open_issues_count":16,"forks_count":9,"subscribers_count":22,"default_branch":"master","last_synced_at":"2025-08-02T09:48:12.041Z","etag":null,"topics":["databricks","deployment","maven-plugin"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edmunds.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-17T21:37:27.000Z","updated_at":"2022-01-02T13:32:30.000Z","dependencies_parsed_at":"2022-09-26T21:40:33.523Z","dependency_job_id":null,"html_url":"https://github.com/edmunds/databricks-maven-plugin","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/edmunds/databricks-maven-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edmunds%2Fdatabricks-maven-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edmunds%2Fdatabricks-maven-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edmunds%2Fdatabricks-maven-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edmunds%2Fdatabricks-maven-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edmunds","download_url":"https://codeload.github.com/edmunds/databricks-maven-plugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edmunds%2Fdatabricks-maven-plugin/sbom","scorecard":{"id":366899,"data":{"date":"2025-08-11","repo":{"name":"github.com/edmunds/databricks-maven-plugin","commit":"71cc0982e7f8ddc090be5fe05ca8eaa1b3110754"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.1,"checks":[{"name":"Code-Review","score":1,"reason":"Found 3/17 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 17 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"10 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-c28r-hw5m-5gv3","Warn: Project is vulnerable to: GHSA-h46c-h94j-95f3","Warn: Project is vulnerable to: GHSA-5mg8-w23w-74h3","Warn: Project is vulnerable to: GHSA-7g45-4rm6-3mm3","Warn: Project is vulnerable to: GHSA-mvr2-9pj6-7w5j","Warn: Project is vulnerable to: GHSA-78wr-2p64-hpwj","Warn: Project is vulnerable to: GHSA-cgp8-4m63-fhh5","Warn: Project is vulnerable to: GHSA-j288-q9x7-2f5v","Warn: Project is vulnerable to: GHSA-2f88-5hg8-9x2x","Warn: Project is vulnerable to: GHSA-264p-99wq-f4j6"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T12:01:53.026Z","repository_id":43004888,"created_at":"2025-08-18T12:01:53.027Z","updated_at":"2025-08-18T12:01:53.027Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408737,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["databricks","deployment","maven-plugin"],"created_at":"2026-01-14T02:47:17.285Z","updated_at":"2026-01-14T02:47:17.840Z","avatar_url":"https://github.com/edmunds.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Databricks Maven Plugin\n\n\u003e [!WARNING]\n\u003e **This project is deprecated and will be archived on March 2, 2026.**\n\u003e\n\u003e This repository is no longer actively maintained. We recommend users migrate to alternative solutions for accessing the Databricks REST API. No new features will be added.\n\n_This is the maven databricks plugin, which uses the databricks rest api._\n\n## Build Status\n[![Build Status](https://travis-ci.org/edmunds/databricks-maven-plugin.svg?branch=master)](https://travis-ci.org/edmunds/databricks-maven-plugin)\n\n## API Overview\n\n[![Javadocs](http://www.javadoc.io/badge/com.edmunds/databricks-maven-plugin.svg)](http://www.javadoc.io/doc/com.edmunds/databricks-maven-plugin)\n\n## Prerequisites\n\nFor Users:\n- You have a databricks account\n- You are somewhat familiar with Maven and have maven installed\n- You have an s3 bucket (we will call databricksRepo) that you will use to store your artifacts. \n- You have AWS keys that can write to this s3 bucket\n- Databricks has access to an IAM Role that can read from this bucket.\n  \n\u0026nbsp;If you want to use your DBFS to store artifacts:\n  - You have Databricks token with write access to the folder in your DBFS.  \n  \nFor Contributors:\n- You need to be able execute an integration test that will actually do things on your databricks account.\n\n## Configuring\n\n### System Properties\nFor databricks specific properties we also support system properties. This can be useful for when you don't want tokens or passwords\nstored in a pom or a script and instead want it to be available on a build server.\nCurrently the following environment properties are supported:\nDB_URL -\u003e my-databrics.cloud.databricks.com\nDB_TOKEN -\u003e dapiceexampletoken\nDB_USER -\u003e my_user\nDB_PASSWORD -\u003e my_password\n\nWe can continue to support more system properties in the future if users have a compelling reason for it.\n\n### AWS Credentials\nFor the upload mojo that uploads your artifact to s3, the default aws provider chain is used. As long as you have appropriate permissions on that chain\nit should just work.\n\n### All other properties\n\nFor all other properties we support configuration in the following ways:\n1. via configuration in the mojo\n2. via property configuration on the command line or in the \u003cproperties\u003e section\n\n### Examples\n\nIf you would like to setup default profiles for users, you can take the following approach.\nNOTE: if you define like below, you cannot override via CLI args unless you use project properties as well.\n```xml\n         \u003c!-- Databricks QA Credentials --\u003e\n         \u003cprofile\u003e\n             \u003cid\u003eQA\u003c/id\u003e\n             \u003cbuild\u003e\n                 \u003cplugins\u003e\n                     \u003cplugin\u003e\n                         \u003cgroupId\u003ecom.edmunds\u003c/groupId\u003e\n                         \u003cartifactId\u003edatabricks-maven-plugin\u003c/artifactId\u003e\n                         \u003cversion\u003e${oss-databricks-maven-plugin-version}\u003c/version\u003e\n                         \u003cconfiguration\u003e\n                             \u003cdatabricksRepo\u003e${which bucket/dbfs folder you want to use to store databricks artifacts}\u003c/databricksRepo\u003e\n                             \u003cdatabricksRepoType\u003e${allowed s3 or dbfs}\u003c/databricksRepoType\u003e\n                             \u003c!-- This is used to be able to allow for conditional configuration in job settings --\u003e\n                             \u003cenvironment\u003eQA\u003c/environment\u003e\n                             \u003chost\u003e${qa-host-here}\u003c/host\u003e\n                             \u003cuser\u003e${qa-user-here}\u003c/user\u003e\n                             \u003cpassword\u003e${qa-password-here}\u003c/password\u003e\n                         \u003c/configuration\u003e\n                     \u003c/plugin\u003e\n                 \u003c/plugins\u003e\n             \u003c/build\u003e\n         \u003c/profile\u003e\n```\n\nYet another option is to provide all of your credentials when you call the plugin.\nYou can even rely on System Properties or the default aws provider chain \nfor the host/user/password OR token for databricks rest client. Please see End to End testing section or the\nBaseDatabricksMojo for information on these system properties. \n\n```sh\nmvn databricks:upload-to-s3 -Ddatabricks.repo=my-repo -Denvironment=QA\n```\n\n## Instructions\n### Use Case 1 - Uploading an Artifact to s3, for Databricks\n```bash\n#This approach will build, run tests and copy your artifacts to s3.\nmvn clean deploy\n\n#This approach will only load your artifacts to s3.\nmvn databricks:upload-to-s3\n```\n\n### Use Case 2 - Uploading an Artifact to DBFS, for Databricks\n```bash\nmvn databricks:upload-to-dbfs\n```\n\n### Use Case 3 - Attaching a Jar to a Cluster\nThis will install a library on a databricks cluster, taking care of any restarts necessary.\n```bash\nmvn clean install databricks:upload-to-s3 \\\ndatabricks:library -Dlibrary.command=INSTALL -Dclusters={myDatabricksCluster}\n```\nHere is how you can install a library to a cluster WITHOUT restarting.\n```bash\nmvn databricks:library -Dlibrary.command=INSTALL -Dclusters=data_engineering -Drestart=false\n```\n\n### Use Case 4 - Exporting Notebooks to a Workspace\nThis command demonstrates exporting notebooks to a workspace\nas well as uploading a jar and attaching it to a cluster, which is a common\noperation when you have a notebook that also depends on library code.\n```bash\nmvn clean install databricks:upload-to-s3 \\\ndatabricks:library databricks:import-workspace \\\n-Dlibrary.command=INSTALL -Dclusters=sam_test\n```\n\n### Use Case 5 - Exporting Notebooks from a Workspace\nThis command demonstrates how you can export notebooks from a databricks workspace to local.\n\nBy default, it uses your maven groupId and artifactId as the databricks workspace prefix:\n```bash\nmvn databricks:export-workspace\n```\n\nIf you need to override the default prefix, you can do so here:\n```bash\nmvn databricks:export-workspace -DworkspacePrefix=deployments/eas-pipeline\n```\n\n### Use Case 6 - Upsert a Job to a Workspace\nYou must have a job definition file. This file should be in the resources directory named databricks-plugin/databricks-job-settings.json and should be a serialized form of an array of type JobSettingsDTO. \nNote that this file is a template, that has access to both the java system properties, as well as the maven project data. It uses freemarker to merge this file, with that data.\n\n```json\n[\n {\n   //There is validation rules around job names based on groupId and artifactId these can be turned off\n   \"name\": \"myTeam/myArtifact\",\n   \"new_cluster\": {\n     \"spark_version\": \"4.1.x-scala2.11\",\n     \"aws_attributes\": {\n       \"first_on_demand\": 1,\n       \"availability\": \"SPOT_WITH_FALLBACK\", // Can also set to SPOT\n       \"instance_profile_arn\": \"\u003cyour_arn\u003e\",\n       \"spot_bid_price_percent\": 100,\n       \"ebs_volume_type\": \"GENERAL_PURPOSE_SSD\",\n       \"ebs_volume_count\": 1,\n       \"ebs_volume_size\": 100\n     },\n    \"driver_node_type_id\" : \"r4.xlarge\",\n     \"node_type_id\": \"m4.large\",\n     \"num_workers\": 1,\n    \"autoscale\" : {\n      \"min_workers\" : 1,\n      \"max_workers\" : 3\n    },\n    \"custom_tags\": {\n        \"team\": \"myTeam\"\n      },\n     \"autotermination_minutes\": 0,\n     \"enable_elastic_disk\": false\n   },\n   \"existing_cluster_id\": null,\n    \"spark_conf\" : {\n    \"spark.databricks.delta.retentionDurationCheck.enabled\" : \"false\"\n    },\n   \"timeout_seconds\": 10800, //3hrs\n  \"schedule\" : {\n    \"quartz_cron_expression\" : \"0 0/30 * ? * * *\",\n    \"timezone_id\" : \"America/Los_Angeles\"\n  },\n     \"spark_jar_task\": {\n      \"main_class_name\": \"com.edmunds.dwh.VehicleInventoryHistoryDriver\"\n    },\n    //If you emit this section, it will automatically be added to your job\n    \"libraries\": [\n      {\n        \"jar\": \"s3://${projectProperties['databricks.repo']}/${projectProperties['databricks.repo.key']}\"\n      }\n   ],\n  \"email_notifications\" : {\n    \"on_failure\" : [ \"myEmail@email.com\" ],\n    \"on_start\" : null,\n    \"on_success\" : null\n  },\n   \"retry_on_timeout\": false,\n   \"max_retries\": 0,\n   \"min_retry_interval_millis\": 0,\n   \"max_concurrent_runs\": 1\n }\n]\n```\nNote that you can specify different libraries types e.g. Maven:\n```json\n    \"libraries\": [\n      {\n        \"jar\": \"s3://${projectProperties['databricks.repo']}/${projectProperties['databricks.repo.key']}\"\n      },\n      {\n        \"maven\": {\n          \"coordinates\": \"org.apache.hbase:hbase-common:1.2.0\",\n          \"repo\": \"\",\n          \"exclusions\": []\n        }\n      }\n    ]\n```\n\nTo upsert your job run the following:\nYou can invoke it manually, like so, or attach it as an execution (see case 2 for example):\n```json\n#deploys the current version\nmvn databricks:upsert-job\n\n#deploys a specific version\nmvn databricks:upsert-job -Ddeploy-version=1.0\n\n#you don't want validation! \n#If so, it could be good to create an issue and let us know where our validation rules are too specific\nmvn databricks:upsert-job -Dvalidate=false\n```\n\nYou can use freemarker templating like so:\n```json\n      \u003c#if environment == \"QA\" || environment == \"DEV\"\u003e\n      \"node_type_id\": \"r3.xlarge\",\n      \"driver_node_type_id\": \"r3.xlarge\",\n      \"num_workers\": 5,\n      \u003c#else\u003e\n      \"node_type_id\": \"r3.4xlarge\",\n      \"driver_node_type_id\": \"r3.xlarge\",\n      \"num_workers\": 10,\n      \u003c/#if\u003e\n```\n\nFor additional information please consult:\nhttps://docs.databricks.com/api/latest/jobs.html#create\nAnd the JobSettingsDTO in:\nhttps://www.javadoc.io/doc/com.edmunds/databricks-rest-client/\n\n### Use Case 7 - Multiple Jobs Definition\nTo process several jobs in one repo (for example, a set of notebooks),\nyou can describe all of them in the in your databricks-job-settings.json:\n```json\n[\n  {\n    \"name\": \"myTeam/myFirstJob\",\n    \"libraries\": [],\n    \"existing_cluster_id\": \"cluster-id\",\n    \"timeout_seconds\": 0,\n    \"notebook_task\": {\n      \"notebook_path\" : \"/path/to/the/notebook\"\n    },\n    \"max_concurrent_runs\": 1\n  },\n  {\n    \"name\": \"myTeam/mySecondJob\",\n    \"libraries\": [],\n    \"existing_cluster_id\": \"cluster-id\",\n    \"timeout_seconds\": 0,\n    \"notebook_task\": {\n      \"notebook_path\" : \"/path/to/the/notebook\"\n    },\n    \"max_concurrent_runs\": 1\n  }\n]\n```\n\nIf you want to upsert just one of them try the `singleJob` argument:\n```json\n# Put myTeam/myFirstJob or myTeam/mySecondJob instead of jobNameSpecifiedInSettingsJsonFile\nmvn databricks:upsert-job databricks:import-workspace -DsingleJob=jobNameSpecifiedInSettingsJsonFile\n```\n\n### Use Case 8 - Control a Job (start, stop, restart)\nYou can control a job (stop it, start it, restart it) via this mojo. \nThere is 1 required property:jobCommand. You can add it to your configuration section, or invoke manually, like so:\n\n(note: you can override the jobName in this example, which is otherwise derived from the job settings json file)\n```bash\nmvn databricks:job -Djob.command=STOP\nmvn databricks:job -Djob.command=START\nmvn databricks:job -Djob.command=RESTART\n```\n\n### Use Case 9 - Control a Cluster (start, stop)\nYou can control a cluster (stop it, start it) via this mojo. \n```bash\nmvn databricks:cluster -Dcluster.command=STOP -Dclusters=cluster_name1,cluster_name2\nmvn databricks:cluster -Dcluster.command=START -Dclusters=cluster_name1,cluster_name2\n```\n\n### Use Case 10 - Upsert clusters\nYou're able to create or recreate clusters. \nTo upsert cluster you should call the following command:\n```bash\nmvn databricks:upsert-cluster\n```\nBy default cluster config should be located at\n```bash\n${project.build.resources[0].directory}/databricks-plugin/databricks-cluster-settings.json\n```\nbut you can overwrite the location:\n```bash\nmvn databricks:upsert-cluster -DdbClusterFile=${project.build.resources[0].directory}/my.json\n```\nAnd also you ought to do it in case of out-of-project plugin usage.\n\nHere you can see an example of cluster configuration:\n```json\n[\n  {\n    \"num_workers\": 2,\n    \"cluster_name\": \"myCluster\",\n    \"spark_version\": \"5.1.x-scala2.11\",\n    \"aws_attributes\": {\n      \"first_on_demand\": 1,\n      \"availability\": \"SPOT_WITH_FALLBACK\",\n      \"zone_id\": \"us-west-2b\",\n      \"instance_profile_arn\": \"\u003cyour_arn\u003e\",\n      \"spot_bid_price_percent\": 100,\n      \"ebs_volume_type\": \"GENERAL_PURPOSE_SSD\",\n      \"ebs_volume_count\": 3,\n      \"ebs_volume_size\": 100\n    },\n    \"node_type_id\": \"r4.xlarge\",\n    \"spark_env_vars\": {\n      \"PYSPARK_PYTHON\": \"/databricks/python3/bin/python3\"\n    },\n    \"autotermination_minutes\": 10,\n    \"artifact_paths\": [\n      \"s3://${projectProperties['databricks.repo']}/${groupId}/${artifactId}/${version}/${artifactId}-${version}.jar\"\n    ],\n    \"driver_node_type_id\": \"r4.xlarge\",\n    \"spark_conf\": {},\n    \"custom_tags\": {},\n    \"ssh_public_keys\": []\n  }\n]\n```\n\nNote that you can simultaneously manage multiple clusters with a single .json file by adding multiple array elements.\nAll configurations will be applied at once in a parallel manner.\n\n## Building, Installing and Running\n\nHow to build the project locally:\n```mvn clean install```\n\n- Not required! Because you can build and develop without it, but you will likely want Lombok configured with your IDEA:\nhttps://projectlombok.org/setup/intellij\n\nHow to run the project locally (if applicable):\n\n\n### Running the tests\n\n```mvn clean test```\n\n\n### End-to-End testing\n\nPlease have these set in your .bash_profile.\n\n```bash\nexport DB_USER=myuser\nexport DB_PASSWORD=mypassword\nexport DB_URL=my-test-db-instance\nexport DB_TOKEN=my-db-token\nexport DB_REPO=my-s3-bucket/my-artifact-location\nexport INSTANCE_PROFILE_ARN=arn:aws:iam::123456789:instance-profile/MyDatabricksRole\n```\n\n```bash\nmvn clean -P run-its install\n```\n\nPlease note, this will:\n1. create a job, if it does not exist, delete it if it does\n2. start the job (e.g. run it once)\n3. wait for the job to finish and ensure it's success\n\n## Releasing\n\nPlease see the contributing section on how to RELEASE.\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for the process for merging code into master.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedmunds%2Fdatabricks-maven-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedmunds%2Fdatabricks-maven-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedmunds%2Fdatabricks-maven-plugin/lists"}