{"id":15055798,"url":"https://github.com/pmd/pmd-designer","last_synced_at":"2025-05-16T04:06:43.383Z","repository":{"id":41432327,"uuid":"173343807","full_name":"pmd/pmd-designer","owner":"pmd","description":"The Rule Designer is a graphical tool that helps PMD users develop their custom rules","archived":false,"fork":false,"pushed_at":"2025-05-10T14:18:47.000Z","size":7771,"stargazers_count":83,"open_issues_count":12,"forks_count":18,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-05-13T01:29:14.137Z","etag":null,"topics":["javafx-application","pmd","xpath"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pmd.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-03-01T17:40:38.000Z","updated_at":"2025-05-10T14:18:50.000Z","dependencies_parsed_at":"2023-01-29T04:01:19.995Z","dependency_job_id":"2602efd1-e690-4708-9423-5b0d0ffa22d5","html_url":"https://github.com/pmd/pmd-designer","commit_stats":{"total_commits":1171,"total_committers":16,"mean_commits":73.1875,"dds":"0.35439795046968403","last_synced_commit":"90bc256d889f017cae6eb72ce68810f231201ca8"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmd%2Fpmd-designer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmd%2Fpmd-designer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmd%2Fpmd-designer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmd%2Fpmd-designer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pmd","download_url":"https://codeload.github.com/pmd/pmd-designer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254464895,"owners_count":22075570,"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":["javafx-application","pmd","xpath"],"created_at":"2024-09-24T21:46:26.636Z","updated_at":"2025-05-16T04:06:38.371Z","avatar_url":"https://github.com/pmd.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PMD Rule Designer\n\n[![Build Status](https://github.com/pmd/pmd-designer/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/pmd/pmd-designer/actions/workflows/build.yml)\n[![Maven Central](https://img.shields.io/maven-central/v/net.sourceforge.pmd/pmd-designer.svg)](https://maven-badges.herokuapp.com/maven-central/net.sourceforge.pmd/pmd-designer)\n[![Join the chat](https://img.shields.io/gitter/room/pmd/pmd-designer)](https://app.gitter.im/#/room/#pmd_pmd-designer:gitter.im?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n\n\nThe Rule Designer is a graphical tool that helps PMD users develop their custom\nrules. Main features:\n* [AST inspection](https://docs.pmd-code.org/latest/pmd_userdocs_extending_designer_reference.html#ast-inspection): inspect AST structure for any language, including XPath attributes\n* [XPath rule design](https://docs.pmd-code.org/latest/pmd_userdocs_extending_designer_reference.html#xpath-rule-design): integrated XPath editor, and rule metadata editor\n* [Rule test edition](https://docs.pmd-code.org/latest/pmd_userdocs_extending_designer_reference.html#testing-a-rule): create or edit rule test files for the [PMD testing framework](https://docs.pmd-code.org/latest/pmd_userdocs_extending_testing.html)\n\n\n![testing-designer](https://user-images.githubusercontent.com/24524930/61461094-504a7900-a970-11e9-822e-30cc121b568c.gif)\n\n\n## Installation\n\nThe designer is part of PMD's binary distributions. To install a distribution, see the\n[documentation page](https://docs.pmd-code.org/latest/pmd_userdocs_installation.html) about installing PMD.\n\nThe app needs either Oracle Java 8 (which includes JavaFX) or OpenJDK 11+ and a separately installed\nOpenJFX distribution. Visit [JavaFX - Gluon](https://gluonhq.com/products/javafx/) to download an SDK distribution,\nextract it, and set the `JAVAFX_HOME` environment variable.\n\nIf the `bin` directory of your PMD distribution is on your shell's path, then you can **launch the app** with\n* `pmd designer` on Linux/ OSX\n* `pmd.bat designer` on Windows\n\nAlternatively, you can launch the program \"from source\" with Maven.\n* `$ ./mvnw -Prunning exec:java` will launch the program after compiling it, using the JavaFX distribution of your system\n* `$ ./mvnw -Prunning,with-javafx exec:java` will also add JavaFX dependencies on your classpath.\nYou can change the version of those dependencies with eg `-Dopenjfx.version=21.0.2` for OpenJFX 21.\nSee the list of available versions [here](https://search.maven.org/artifact/org.openjfx/javafx).\n\n### Updating\n\nThe latest version of the designer currently **works with PMD 7.0.0 and above**.\nYou can simply replace `pmd-designer-7.X.Y.jar` with the [latest build](https://github.com/pmd/pmd-designer/releases/latest)\nin the installation folder of your PMD distribution.\n\n## Usage\n\n### [Usage documentation is on the website](https://docs.pmd-code.org/latest/pmd_userdocs_extending_designer_reference.html)\n\n## Building from source/ contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for instructions to build the project from source and setup your IDE.\n\n\n##### Building a runnable JAR\n\nYou can package a runnable jar containing the PMD dependencies with maven. For\nnow the only option is to build a jar that contains pmd-core and pmd-java:\n\n```\n./mvnw clean package -Dfat-java -Dpmd.core.version=7.0.0-SNAPSHOT\n```\nThe `pmd.core.version` property selects the version of pmd-core *and pmd-java*\nthat will be included. The built jar can then be found in your `target` directory.\n**Such a jar cannot be used in a PMD distribution** and must be used in a\nstandalone fashion, otherwise classpath conflicts may arise.\nYou can additionally enable the profile `with-javafx` to include openjfx as well.\n\nYou should never run the `install` goal with the `-Dfat-java` property! This\nwould install the fat jar in your local repo and may cause dependency conflicts.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmd%2Fpmd-designer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpmd%2Fpmd-designer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmd%2Fpmd-designer/lists"}