{"id":13436659,"url":"https://github.com/pentaho/pentaho-kettle","last_synced_at":"2025-05-14T22:05:13.350Z","repository":{"id":11076450,"uuid":"13421878","full_name":"pentaho/pentaho-kettle","owner":"pentaho","description":"Pentaho Data Integration ( ETL ) a.k.a Kettle","archived":false,"fork":false,"pushed_at":"2025-05-14T19:34:53.000Z","size":700386,"stargazers_count":8002,"open_issues_count":63,"forks_count":3519,"subscribers_count":458,"default_branch":"master","last_synced_at":"2025-05-14T22:03:16.810Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pentaho.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.TXT","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-10-08T18:27:11.000Z","updated_at":"2025-05-14T03:39:19.000Z","dependencies_parsed_at":"2023-10-11T17:25:54.230Z","dependency_job_id":"2d8f5df1-8494-4190-81d0-31f673e56503","html_url":"https://github.com/pentaho/pentaho-kettle","commit_stats":{"total_commits":19131,"total_committers":444,"mean_commits":43.08783783783784,"dds":0.8570905859599602,"last_synced_commit":"eef9a806638fa08e5e532479af528a3a3a25b7bc"},"previous_names":[],"tags_count":2200,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pentaho%2Fpentaho-kettle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pentaho%2Fpentaho-kettle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pentaho%2Fpentaho-kettle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pentaho%2Fpentaho-kettle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pentaho","download_url":"https://codeload.github.com/pentaho/pentaho-kettle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254235686,"owners_count":22036962,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-07-31T03:00:51.048Z","updated_at":"2025-05-14T22:05:08.310Z","avatar_url":"https://github.com/pentaho.png","language":"Java","funding_links":[],"categories":["Java","Recently Updated","Projects","大数据","others"],"sub_categories":["[Sep 04, 2024](/content/2024/09/04/README.md)","Data Integration"],"readme":"# Pentaho Data Integration # \n\nPentaho Data Integration ( ETL ) a.k.a Kettle\n\n### Project Structure\n\n* **assemblies:** \nProject distribution archive is produced under this module\n* **core:** \nCore implementation\n* **dbdialog:** \nDatabase dialog\n* **ui:** \nUser interface\n* **engine:** \nPDI engine\n* **engine-ext:** \nPDI engine extensions\n* **[plugins:](plugins/README.md)** \nPDI core plugins\n* **integration:** \nIntegration tests\n\nHow to build\n--------------\n\nPentaho Data Integration uses the Maven framework. \n\n\n#### Pre-requisites for building the project:\n* Maven, version 3+\n* Java JDK 11\n* This [settings.xml](https://raw.githubusercontent.com/pentaho/maven-parent-poms/master/maven-support-files/settings.xml) in your \u003cuser-home\u003e/.m2 directory\n\n#### Building it\n\nThis is a Maven project, and to build it use the following command:\n\n```\n$ mvn clean install\n```\nOptionally you can specify -Drelease to trigger obfuscation and/or uglification (as needed)\n\nOptionally you can specify -Dmaven.test.skip=true to skip the tests (even though\nyou shouldn't as you know)\n\nThe build result will be a Pentaho package located in ```target```.\n\n#### Packaging / Distributing it\n\nPackages can be built by using the following command:\n```\n$ mvn clean package\n```\n\nThe packaged results will be in the `target/` sub-folders of `assemblies/*`.\n\nFor example, a distribution of the Desktop Client (CE) can then be found in: `assemblies/client/target/pdi-ce-*-SNAPSHOT.zip`.\n\n#### Running the tests\n\n__Unit tests__\n\nThis will run all unit tests in the project (and sub-modules). To run integration tests as well, see Integration Tests below.\n\n```\n$ mvn test\n```\n\nIf you want to remote debug a single Java unit test (default port is 5005):\n\n```\n$ cd core\n$ mvn test -Dtest=\u003c\u003cYourTest\u003e\u003e -Dmaven.surefire.debug\n```\n\n__Integration tests__\n\nIn addition to the unit tests, there are integration tests that test cross-module operation. This will run the integration tests.\n\n```\n$ mvn verify -DrunITs\n```\n\nTo run a single integration test:\n\n```\n$ mvn verify -DrunITs -Dit.test=\u003c\u003cYourIT\u003e\u003e\n```\n\nTo run a single integration test in debug mode (for remote debugging in an IDE) on the default port of 5005:\n\n```\n$ mvn verify -DrunITs -Dit.test=\u003c\u003cYourIT\u003e\u003e -Dmaven.failsafe.debug\n```\n\nTo skip test\n\n```\n$ mvn clean install -DskipTests\n```\n\nTo get log as text file\n\n```\n$ mvn clean install test \u003elog.txt\n```\n\n\n__IntelliJ__\n\n* Don't use IntelliJ's built-in maven. Make it use the same one you use from the commandline.\n  * Project Preferences -\u003e Build, Execution, Deployment -\u003e Build Tools -\u003e Maven ==\u003e Maven home directory\n\n\n### Contributing\n\n1. Submit a pull request, referencing the relevant [Jira case](https://jira.pentaho.com/secure/Dashboard.jspa)\n2. Attach a Git patch file to the relevant [Jira case](https://jira.pentaho.com/secure/Dashboard.jspa)\n\nUse of the Pentaho checkstyle format (via `mvn checkstyle:check` and reviewing the report) and developing working \nUnit Tests helps to ensure that pull requests for bugs and improvements are processed quickly.\n\nWhen writing unit tests, you have at your disposal a couple of ClassRules that can be used to maintain a healthy\ntest environment. Use [RestorePDIEnvironment](core/src/test/java/org/pentaho/di/junit/rules/RestorePDIEnvironment.java)\nand [RestorePDIEngineEnvironment](engine/src/test/java/org/pentaho/di/junit/rules/RestorePDIEngineEnvironment.java)\nfor core and engine tests respectively.\n\npex.:\n```java\npublic class MyTest {\n  @ClassRule public static RestorePDIEnvironment env = new RestorePDIEnvironment();\n  #setUp()...\n  @Test public void testSomething() { \n    assertTrue( myMethod() ); \n  }\n}\n```  \n\n### Asking for help\nPlease go to https://community.hitachivantara.com/community/products-and-solutions/pentaho/ to ask questions and get help.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpentaho%2Fpentaho-kettle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpentaho%2Fpentaho-kettle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpentaho%2Fpentaho-kettle/lists"}