{"id":24143650,"url":"https://github.com/pgreze/gradle-experiments","last_synced_at":"2026-05-08T14:08:50.094Z","repository":{"id":112007227,"uuid":"97369466","full_name":"pgreze/gradle-experiments","owner":"pgreze","description":"Gradle experiments","archived":false,"fork":false,"pushed_at":"2021-04-30T09:25:11.000Z","size":124,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-21T17:31:38.821Z","etag":null,"topics":["gradle","gradle-java","gradle-plugin","gradle-wrapper","groovy"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pgreze.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-07-16T08:09:05.000Z","updated_at":"2021-12-12T16:03:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"b002772a-5ab5-4f17-aca1-6c832a9943ec","html_url":"https://github.com/pgreze/gradle-experiments","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pgreze/gradle-experiments","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgreze%2Fgradle-experiments","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgreze%2Fgradle-experiments/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgreze%2Fgradle-experiments/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgreze%2Fgradle-experiments/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pgreze","download_url":"https://codeload.github.com/pgreze/gradle-experiments/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgreze%2Fgradle-experiments/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32783502,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["gradle","gradle-java","gradle-plugin","gradle-wrapper","groovy"],"created_at":"2025-01-12T05:28:13.368Z","updated_at":"2026-05-08T14:08:50.076Z","avatar_url":"https://github.com/pgreze.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gradle experiments\n\n## [Creating new gradle build](https://guides.gradle.org/creating-new-gradle-builds/)\n\nFind already downloaded gradle binaries in .gradle/wrapper/dists.\nFor example:\n```\nalias gradle=~/.gradle/wrapper/dists/gradle-4.0.1-all/26awvqv6f41r14q9x72t4n0s/gradle-4.0.1/bin/gradle\n```\n\nAnd use to create your first project:\n```\n# Help on a specific task\ngradle help --task wrapper\n\n# New wrapper\ngradle wrapper --gradle-version 4.0.1 --distribution-type all\n```\n\nDisplay project info:\n```\n./gradlew properties\n```\n\nUse our first custom task:\n```\n# Display all tasks\n./gradlew tasks --all\n\n# Execute task\n./gradlew copy\n```\n\nAfter copy, let's zip our project's src folder:\n```\n./gradlew zip\nunzip -ql build/distributions/hello-1.0.zip\n```\n\n## [Creating Multi-project Builds](https://guides.gradle.org/creating-multi-project-builds/)\n\nLet's create our first sub project (wrapper + settings useless here):\n```\n# Init a new java-library build\nmkdir jlib \u0026\u0026 cd jlib\n../gradlew init --type java-library\n\n# Add this new sub project\necho \"include ':japp', ':jlib'\" \u003e settings.gradle\n```\n\nConsider using [gw](https://github.com/dougborg/gdub)\nas a nice shortcut for using wrapper from anywhere with ease.\n\n## [Writing gradle tasks](https://guides.gradle.org/writing-gradle-tasks/)\n\nSee changes in base/build.gradle and our new base task group when listing tasks :)\n\n## [Writing gradle plugins](https://guides.gradle.org/writing-gradle-plugins/)\n\nGood practice is to configure plugin properties in folder:\nbuildSrc/src/main/resources/META-INF/gradle-plugins\nin order to use the plugin id.\n\n## [Build environment](https://docs.gradle.org/4.0.1/userguide/build_environment.html)\n\n2 ways to declare a project property:\n- via command line (like \"gradle hello -Pverbose.level=info -PnoLogs\")\n- via gradle.properties (verbose.level=info) in project directory\n- via gradle.properties in gradle user home (usually ~/.gradle)\n\nFor a system property, see -Dproperty=value accessible via System.getProperty.\nSee [this page](https://docs.gradle.org/4.0.1/userguide/build_environment.html#sec:gradle_properties_and_system_properties)\nabout project/system properties and other ways to set them.\n\n## [Java Gradle Plugin Development Plugin](https://docs.gradle.org/current/userguide/javaGradle_plugin.html)\n\nEnable some validations:\n- There is a plugin descriptor defined for the plugin.\n- The plugin descriptor contains a valid implementation-class property.\n- Each property getter or the corresponding field must be annotated with a property annotation like @InputFile and @OutputDirectory. Properties that don't participate in up-to-date checks should be annotated with @Internal.\n\nUse the gradlePlugin{} block allows also:\n- Generate the plugin descriptor (META-INF/my-plugin.properties).\n- Configure the Maven publishing plugins to publish a Plugin Marker Artifact for each plugin.\n- Easily use [TestKit](https://docs.gradle.org/current/userguide/test_kit.html#sub:test-kit-automatic-classpath-injection)\n\nAbout plugins DSL, put at the beginning of settings.gradle:\n```groovy\n// See https://goo.gl/AmmZuy\npluginManagement {\n    repositories {\n        maven {\n            url \"file://${System.getProperty(\"user.home\")}/.m2/repository\"\n        }\n        gradlePluginPortal()\n    }\n}\n```\n\nAllow us to use:\n```groovy\nplugins {\n    id 'fr.pgreze.hello' version '1.0'\n}\n```\n\nInstead of:\n```groovy\nbuildscript {\n    dependencies {\n        classpath 'fr.pgreze.hello:fr.pgreze.hello.gradle.plugin:0.1'\n    }\n}\napply plugin: 'fr.pgreze.hello'\n```\n\nBut I'm too lazy to split each plugins from :jplugin in dedicated projects.\n\nSee [this gradle example](https://github.com/gradle/gradle/blob/master/subprojects/docs/src/samples/compositeBuilds/basic/my-utils/build.gradle)\nfor an example of easy split.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgreze%2Fgradle-experiments","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpgreze%2Fgradle-experiments","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgreze%2Fgradle-experiments/lists"}