{"id":13733328,"url":"https://github.com/clojurephant/clojurephant","last_synced_at":"2025-05-15T13:08:30.348Z","repository":{"id":23794280,"uuid":"99865757","full_name":"clojurephant/clojurephant","owner":"clojurephant","description":"Clojure and Clojurescript support for Gradle","archived":false,"fork":false,"pushed_at":"2025-04-19T14:51:51.000Z","size":1235,"stargazers_count":186,"open_issues_count":24,"forks_count":18,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-05-13T14:21:28.948Z","etag":null,"topics":["clojure","clojurephant","clojurescript","gradle","gradle-clojure","gradle-plugin"],"latest_commit_sha":null,"homepage":"https://clojurephant.dev/","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/clojurephant.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/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":"2017-08-10T01:01:32.000Z","updated_at":"2025-04-19T14:51:55.000Z","dependencies_parsed_at":"2023-12-31T00:23:05.665Z","dependency_job_id":"e6cec266-c5e8-441f-8b59-998b9efc41e3","html_url":"https://github.com/clojurephant/clojurephant","commit_stats":{"total_commits":393,"total_committers":10,"mean_commits":39.3,"dds":0.0330788804071247,"last_synced_commit":"152ef94581c6ee15cbcdf69a598815a28e12c215"},"previous_names":["gradle-clojure/gradle-clojure"],"tags_count":71,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clojurephant%2Fclojurephant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clojurephant%2Fclojurephant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clojurephant%2Fclojurephant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clojurephant%2Fclojurephant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clojurephant","download_url":"https://codeload.github.com/clojurephant/clojurephant/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254346624,"owners_count":22055808,"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":["clojure","clojurephant","clojurescript","gradle","gradle-clojure","gradle-plugin"],"created_at":"2024-08-03T03:00:41.307Z","updated_at":"2025-05-15T13:08:25.280Z","avatar_url":"https://github.com/clojurephant.png","language":"Java","funding_links":[],"categories":["Plugins","Build Automation and Package management"],"sub_categories":["Language"],"readme":"# clojurephant\n\nFormerly known as \"gradle-clojure\"\n\n[![CI](https://github.com/clojurephant/clojurephant/actions/workflows/ci.yaml/badge.svg)](https://github.com/clojurephant/clojurephant/actions/workflows/ci.yaml)\n[![cljdoc](https://cljdoc.org/badge/dev.clojurephant/clojurephant-plugin)](https://cljdoc.org/d/dev.clojurephant/clojurephant-plugin/CURRENT)\n\n## What is this?\n\nA Gradle plugin providing support for the Clojure and ClojureScript languages.\n\n**NOTE:** clojurephant should not be considered stable until 1.0.0. Until then, minor versions (e.g. 0.1.0 to 0.2.0) will likely contain breaking changes.\n\n### Clojure Features\n\n- Packaging Clojure code (and/or AOT compiled classes) into a JAR\n- Package an Uberjar (via the Gradle [Shadow plugin](https://gradleup.com/shadow/))\n- AOT compilation\n- Running clojure.test tests (integrated into Gradle's [Test task](https://docs.gradle.org/current/dsl/org.gradle.api.tasks.testing.Test.html))\n- Running an nREPL server (supports custom middlewares or handler)\n\n### ClojureScript Features\n\n**NOTE:** ClojureScript features are pretty new, so let us know if you run into issues or have ideas for improvement.\n\n- Packaging Clojure code (or compiled JS) into a JAR or ZIP\n- ClojureScript compilation (multiple builds supported)\n\n## Why should you care?\n\nThe goal is to provide the same creature comforts that [Leiningen](http://leiningen.org/) and [Boot](https://boot-clj.github.io/) do for Clojure/ClojureScript development, while also leveraging Gradle's unique features:\n\n- Strong support for polyglot projects\n- Strong support for multi-project builds\n- Large [plugin ecosystem](https://plugins.gradle.org)\n\n## Usage\n\nSee the [Release Notes](https://github.com/clojurephant/clojurephant/releases) for available versions, compatibility with Gradle, Java, and Clojure, and detailed change notes.\n\nThis plugin assumes you're using a sane layout for your Clojure code - namespaces corresponding\nto your source code layout, and one namespace per file. The plugin uses the filenames to\ncalculate the namespaces involved, it does not parse the files looking for `ns` forms.\n\n### Quick Start\n\nLook at our sample projects:\n\n- [Clojure Library](https://github.com/clojurephant/sample-clojurephant-clj-lib)\n- [Clojure Application](https://github.com/clojurephant/sample-clojurephant-clj-app)\n- [ClojureScript Application](https://github.com/clojurephant/sample-clojurephant-cljs-app)\n\n#### Common Commands\n\n- `./gradlew test` Executes your clojure.test tests (and any other JUnit tests in your build).\n- `./gradlew clojureRepl` Starts an nREPL server (on a random port by default).\n\n**build.gradle**\n\n```groovy\nplugins {\n  id \"dev.clojurephant.clojure\" version \"\u003cversion\u003e\"\n}\n\n// You need to add clojars for the plugin to work.\nrepositories {\n  maven {\n    name = 'Clojars' // name can be ommitted, but is helpful in troubleshooting\n    url = 'https://repo.clojars.org/'\n  }\n}\n\ndependencies {\n  // requires a version of Clojure with prepl (1.10+)\n  implementation 'org.clojure:clojure:1.11.1'\n  // and any other dependencies you want on the compile classpath\n  // implementation 'group:artifact:version'\n\n  // needed for test integration\n  testRuntimeOnly 'dev.clojurephant:jovial:0.4.2'\n  // and any other test-specific dependencies\n  // testImplementation 'group:artifact:version'\n\n  // dependencies for REPL use only\n  devImplementation 'org.clojure:tools.namespace:1.3.0'\n}\n\n// needed for test integration\ntasks.withType(Test) {\n  useJUnitPlatform()\n}\n\n```\n\nSee all available options in the [docs](https://clojurephant.dev).\n\n## Getting help\n\nRead the online Clojurephant documentation [https://clojurephant.dev](https://clojurephant.dev).\n\nFor questions or support, please visit the [Clojurephant Discussions](https://github.com/clojurephant/clojurephant/discussions), [ClojureVerse gradle-clojure channel](https://clojureverse.org/c/projects/gradle-clojure) or the [Clojurian's Slack #gradle channel](http://clojurians.net/)\n\nFor bug reports and feature requests, please use the repo's [issues](https://github.com/clojurephant/clojurephant/issues).\n\n## Contributing\n\nSee the [guidelines](.github/CONTRIBUTING.md) for details on how you can contribute.\n\n## Acknowledgements\n\nThis project started from the [cursive.clojure](https://github.com/cursive-ide/gradle-clojure) plugin by Colin Fleming (@cmf, original author) and Piotrek Bzdyl (@pbzdyl).\n\nThanks to John Szakmeister (@jszakmeister) for organizing a call with Gradle to get us started in the right direction.\n\nThanks to all [our contributors](https://github.com/clojurephant/clojurephant/graphs/contributors).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclojurephant%2Fclojurephant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclojurephant%2Fclojurephant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclojurephant%2Fclojurephant/lists"}