{"id":15494980,"url":"https://github.com/fracpete/deps4j","last_synced_at":"2025-03-28T17:14:38.250Z","repository":{"id":144520030,"uuid":"99651018","full_name":"fracpete/deps4j","owner":"fracpete","description":"Tools for determining dependencies of classes.","archived":false,"fork":false,"pushed_at":"2020-10-13T03:46:58.000Z","size":30,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-19T12:16:05.976Z","etag":null,"topics":["classpath","dependencies","java"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fracpete.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2017-08-08T04:45:58.000Z","updated_at":"2020-10-13T03:46:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"3ce6a039-b480-4528-86ff-0ea1049120b4","html_url":"https://github.com/fracpete/deps4j","commit_stats":{"total_commits":18,"total_committers":3,"mean_commits":6.0,"dds":"0.11111111111111116","last_synced_commit":"6c653415bbef8877ca2a0ad6ea51ad85dcea89e4"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fracpete%2Fdeps4j","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fracpete%2Fdeps4j/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fracpete%2Fdeps4j/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fracpete%2Fdeps4j/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fracpete","download_url":"https://codeload.github.com/fracpete/deps4j/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246068302,"owners_count":20718503,"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":["classpath","dependencies","java"],"created_at":"2024-10-02T08:15:42.527Z","updated_at":"2025-03-28T17:14:38.230Z","avatar_url":"https://github.com/fracpete.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# deps4j\n\nTools for determining dependencies of classes. Makes use of the \n[jdeps](https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jdeps.html)\ntool that is part of the Java JDK.\n\n## Minimal dependencies\nThe following class allows you to determine the minimal set of classes\nrequired to make a supplied list of classes compile:\n\n```\ncom.github.fracpete.deps4j.MinDeps\n```\n\n### Help\n\n```\nusage: com.github.fracpete.deps4j.MinDeps\n       [-h] --java-home JAVAHOME --class-path CLASSPATH\n       --classes CLASSES [--additional ADDITIONAL] [--output OUTPUT]\n       packages [packages ...]\n\npositional arguments:\n  packages               The packages to keep, eg 'weka'.\n\noptional arguments:\n  -h, --help             show this help message and exit\n  --java-home JAVAHOME   The java home directory  of  the JDK that includes\n                         the jdeps binary, default  is taken from JAVA_HOME\n                         environment variable.\n  --class-path CLASSPATH\n                         The CLASSPATH to use for jdeps.\n  --classes CLASSES      The file containing the  classes  to determine the\n                         dependencies for. Empty  lines  and lines starting\n                         with # get ignored.\n  --additional ADDITIONAL\n                         The file  with  additional  class  names  to  just\n                         include.\n  --output OUTPUT        The file for  storing  the  determined class names\n                         in.\n```\n\n### Example\n\n**Use case:** determine a minimal subset of classes for an embedded version of Weka.\n\nThe following Weka classes are required (`./classes.txt`):\n\n```\nweka.classifiers.Evaluation\nweka.classifiers.functions.Logistic\nweka.classifiers.functions.MultilayerPerceptron\nweka.core.Attribute\nweka.core.DenseInstance\nweka.core.Instances\nweka.core.SerializationHelper\nweka.filters.Filter\nweka.filters.unsupervised.attribute.Discretize\nweka.filters.supervised.instance.Resample\n```\n\nThe JDK is located at `/some/where/jdk1.8.0_144-64bit` and the Weka \njar at `./weka.jar`. We are looking for Weka packages, hence\nusing `weka` as positional argument.\n\nThis gives the following commandline, which will output the determined \nclasses on stdout:\n\n```bash\ncom.github.fracpete.deps4j.MinDeps \\\n  --java-home\n  /some/where/jdk1.8.0_144-64bit\n  --classes\n  ./classes.txt\n  --class-path\n  ./weka.jar\n  weka\n```\n\n## Maven\n\nAdd the following dependency to your `pom.xml`:\n```xml\n    \u003cdependency\u003e\n      \u003cgroupId\u003ecom.github.fracpete\u003c/groupId\u003e\n      \u003cartifactId\u003edeps4j\u003c/artifactId\u003e\n      \u003cversion\u003e0.0.2\u003c/version\u003e\n    \u003c/dependency\u003e\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffracpete%2Fdeps4j","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffracpete%2Fdeps4j","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffracpete%2Fdeps4j/lists"}