{"id":13485751,"url":"https://github.com/javaparser/javaparser","last_synced_at":"2025-12-27T15:12:07.015Z","repository":{"id":1762116,"uuid":"2675355","full_name":"javaparser/javaparser","owner":"javaparser","description":"Java 1-24 Parser and Abstract Syntax Tree for Java with advanced analysis functionalities.","archived":false,"fork":false,"pushed_at":"2025-12-20T22:58:40.000Z","size":46277,"stargazers_count":6001,"open_issues_count":455,"forks_count":1224,"subscribers_count":141,"default_branch":"master","last_synced_at":"2025-12-21T03:58:20.279Z","etag":null,"topics":["abstract-syntax-tree","ast","code-analysis","code-generation","code-generator","java","javadoc","javaparser","javasymbolsolver","parser","syntax-tree"],"latest_commit_sha":null,"homepage":"https://javaparser.org","language":"Java","has_issues":true,"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/javaparser.png","metadata":{"files":{"readme":"readme.md","changelog":"changelog.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":"javaparser","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2011-10-30T14:03:44.000Z","updated_at":"2025-12-20T22:57:46.000Z","dependencies_parsed_at":"2025-04-17T19:32:10.829Z","dependency_job_id":"f3a21a05-e876-47ca-b093-4bc79f28fd34","html_url":"https://github.com/javaparser/javaparser","commit_stats":{"total_commits":6505,"total_committers":272,"mean_commits":"23.915441176470587","dds":0.755880092236741,"last_synced_commit":"ecff47e1fac9603336af2143aa6447c16f147d43"},"previous_names":[],"tags_count":223,"template":false,"template_full_name":null,"purl":"pkg:github/javaparser/javaparser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaparser%2Fjavaparser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaparser%2Fjavaparser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaparser%2Fjavaparser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaparser%2Fjavaparser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/javaparser","download_url":"https://codeload.github.com/javaparser/javaparser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaparser%2Fjavaparser/sbom","scorecard":{"id":508138,"data":{"date":"2025-08-11","repo":{"name":"github.com/javaparser/javaparser","commit":"d7613d8aedf46d1d1c9d6e82a27e3ffd3f92664b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.5,"checks":[{"name":"Code-Review","score":2,"reason":"Found 4/19 approved changesets -- score normalized to 2","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":10,"reason":"30 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10","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":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/create_github_release.yml:1","Warn: no topLevel permission defined: .github/workflows/formatting_check.yml:1","Warn: no topLevel permission defined: .github/workflows/maven_tests.yml:1","Warn: no topLevel permission defined: .github/workflows/prepare_release_changelog.yml:1","Info: no jobLevel write permissions found"],"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":"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":"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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","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":"Binary-Artifacts","score":8,"reason":"binaries present in source code","details":["Warn: binary detected: .mvn/wrapper/maven-wrapper.jar:1","Warn: binary detected: scripts/github-changelog-generator_mysteraitch.jar:1"],"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":"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"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":"Fuzzing","score":10,"reason":"project is fuzzed","details":["Info: OSSFuzz integration found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/create_github_release.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/javaparser/javaparser/create_github_release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/create_github_release.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/javaparser/javaparser/create_github_release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/formatting_check.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/javaparser/javaparser/formatting_check.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/formatting_check.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/javaparser/javaparser/formatting_check.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/formatting_check.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/javaparser/javaparser/formatting_check.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/formatting_check.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/javaparser/javaparser/formatting_check.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/maven_tests.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/javaparser/javaparser/maven_tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/maven_tests.yml:66: update your workflow using https://app.stepsecurity.io/secureworkflow/javaparser/javaparser/maven_tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/maven_tests.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/javaparser/javaparser/maven_tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/maven_tests.yml:99: update your workflow using https://app.stepsecurity.io/secureworkflow/javaparser/javaparser/maven_tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/maven_tests.yml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/javaparser/javaparser/maven_tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/prepare_release_changelog.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/javaparser/javaparser/prepare_release_changelog.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/prepare_release_changelog.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/javaparser/javaparser/prepare_release_changelog.yml/master?enable=pin","Info:   0 out of  11 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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":10,"reason":"0 existing vulnerabilities detected","details":null,"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-19T23:46:06.096Z","repository_id":1762116,"created_at":"2025-08-19T23:46:06.097Z","updated_at":"2025-08-19T23:46:06.097Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28080301,"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","status":"online","status_checked_at":"2025-12-27T02:00:05.897Z","response_time":58,"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":["abstract-syntax-tree","ast","code-analysis","code-generation","code-generator","java","javadoc","javaparser","javasymbolsolver","parser","syntax-tree"],"created_at":"2024-07-31T18:00:31.130Z","updated_at":"2025-12-27T15:12:06.963Z","avatar_url":"https://github.com/javaparser.png","language":"Java","readme":"\n\u003c!--\n    Note that edits to this readme should be done via `docs/readme.md`.\n    Modifying this file directly within the root directory risks it being overwritten. \n--\u003e\n\n# JavaParser\n\n[![Maven Central](https://img.shields.io/maven-central/v/com.github.javaparser/javaparser-core.svg)](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.github.javaparser%22%20AND%20a%3A%22javaparser-core%22)\n[![Build Status](https://github.com/javaparser/javaparser/actions/workflows/maven_tests.yml/badge.svg?branch=master)](https://github.com/javaparser/javaparser/actions/workflows/maven_tests.yml)\n[![Coverage Status](https://codecov.io/gh/javaparser/javaparser/branch/master/graphs/badge.svg?branch=master)](https://app.codecov.io/gh/javaparser/javaparser?branch=master)\n[![Join the chat at https://gitter.im/javaparser/javaparser](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/javaparser/javaparser?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![License LGPL-3/Apache-2.0](https://img.shields.io/badge/license-LGPL--3%2FApache--2.0-blue.svg)](LICENSE)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2667378.svg)](https://doi.org/10.5281/zenodo.2667378)\n\n\nThis project contains a set of libraries implementing a Java 1.0 - Java 24 Parser with advanced analysis functionalities.\n\nOur main site is at [JavaParser.org](http://javaparser.org)\n\n## Sponsors\n\nSupport this project by becoming a sponsor! [Become a sponsor](https://opencollective.com/javaparser). Your donation will help the project live and grow successfully.\n\nJavaparser uses [OpenCollective](https://opencollective.com/javaparser) to gather money.\n\n**Thank you to our sponsors!**\n\n\n## Setup\n\nThe project binaries are available in Maven Central.\n\nWe strongly advise users to adopt Maven, Gradle or another build system for their projects.\nIf you are not familiar with them we suggest taking a look at the maven quickstart projects\n([javaparser-maven-sample](https://github.com/javaparser/javaparser-maven-sample),\n[javasymbolsolver-maven-sample](https://github.com/javaparser/javasymbolsolver-maven-sample)).\n\nJust add the following to your maven configuration or tailor to your own dependency management system.\n\n[Please refer to the Migration Guide when upgrading from 2.5.1 to 3.0.0+](https://github.com/javaparser/javaparser/wiki/Migration-Guide)\n\n**Maven**:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.javaparser\u003c/groupId\u003e\n    \u003cartifactId\u003ejavaparser-symbol-solver-core\u003c/artifactId\u003e\n    \u003cversion\u003e3.27.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n**Gradle**:\n\n```\nimplementation 'com.github.javaparser:javaparser-symbol-solver-core:3.27.1'\n```\n\nSince Version 3.5.10, the JavaParser project includes the JavaSymbolSolver.\nWhile JavaParser generates an Abstract Syntax Tree, JavaSymbolSolver analyzes that AST and is able to find\nthe relation between an element and its declaration (e.g. for a variable name it could be a parameter of a method, providing information about its type, position in the AST, ect).\n\nUsing the dependency above will add both JavaParser and JavaSymbolSolver to your project. If you only need the core functionality of parsing Java source code in order to traverse and manipulate the generated AST, you can reduce your projects boilerplate by only including JavaParser to your project:\n\n**Maven**:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.javaparser\u003c/groupId\u003e\n    \u003cartifactId\u003ejavaparser-core\u003c/artifactId\u003e\n    \u003cversion\u003e3.27.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n**Gradle**:\n\n```\nimplementation 'com.github.javaparser:javaparser-core:3.27.1'\n```\n\nSince version 3.6.17 the AST can be serialized to JSON.\nThere is a separate module for this:\n\n**Maven**:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.javaparser\u003c/groupId\u003e\n    \u003cartifactId\u003ejavaparser-core-serialization\u003c/artifactId\u003e\n    \u003cversion\u003e3.27.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n**Gradle**:\n\n```\nimplementation 'com.github.javaparser:javaparser-core-serialization:3.27.1'\n```\n\n## How To Compile Sources\n\nIf you checked out the project's source code from GitHub, you can build the project with maven using:\n```\n./mvnw clean install\n```\n\nIf you want to generate the packaged jar files from the source files, you run the following maven command:\n```\n./mvnw package\n```\n\n**NOTE** the jar files for the two modules can be found in:\n- `javaparser/javaparser-core/target/javaparser-core-\\\u003cversion\\\u003e.jar`\n- `javaparser-symbol-solver-core/target/javaparser-symbol-solver-core-\\\u003cversion\\\u003e.jar`\n\nIf you checkout the sources and want to view the project in an IDE, it is best to first generate some of the source files;\notherwise you will get many compilation complaints in the IDE. (`./mvnw clean install` already does this for you.)\n\n```\n./mvnw javacc:javacc\n```\n\nIf you modify the code of the AST nodes, specifically if you add or remove fields or node classes,\nthe code generators will update a lot of code for you.\nThe `run_metamodel_generator.sh` script will rebuild the metamodel,\nwhich is used by the code generators which are run by `run_core_generators.sh`\nMake sure that `javaparser-core` at least compiles before you run these.\n\n**Note**: for Eclipse IDE follow the steps described in the wiki: https://github.com/javaparser/javaparser/wiki/Eclipse-Project-Setup-Guide\n\n## More information\n\n#### [JavaParser.org](https://javaparser.org) is the main information site or see the wiki page https://github.com/javaparser/javaparser/wiki.\n\n## License\n\nJavaParser is available either under the terms of the LGPL License or the Apache License. You as the user are entitled to choose the terms under which adopt JavaParser.\n\nFor details about the LGPL License please refer to [LICENSE.LGPL](https://github.com/javaparser/javaparser/blob/master/LICENSE.LGPL).\n\nFor details about the Apache License please refer to [LICENSE.APACHE](https://github.com/javaparser/javaparser/blob/master/LICENSE.APACHE).\n","funding_links":["https://opencollective.com/javaparser"],"categories":["Projects","Java","Java (504)","Java ##","项目","Metaprogramming"],"sub_categories":["Development","发展"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavaparser%2Fjavaparser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjavaparser%2Fjavaparser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavaparser%2Fjavaparser/lists"}