{"id":15866418,"url":"https://github.com/squidmin/gradle-labs","last_synced_at":"2025-04-01T21:20:35.766Z","repository":{"id":157749602,"uuid":"623480630","full_name":"squidmin/gradle-labs","owner":"squidmin","description":"Gradle learning labs","archived":false,"fork":false,"pushed_at":"2023-04-28T01:29:42.000Z","size":68,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-07T13:54:16.659Z","etag":null,"topics":["gradle","java","spring","spring-mvc","spring-rest"],"latest_commit_sha":null,"homepage":"","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/squidmin.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":"2023-04-04T13:07:01.000Z","updated_at":"2023-04-07T21:41:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"32ddaa5a-bf13-408c-bccf-6f9248bdd7ac","html_url":"https://github.com/squidmin/gradle-labs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squidmin%2Fgradle-labs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squidmin%2Fgradle-labs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squidmin%2Fgradle-labs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/squidmin%2Fgradle-labs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/squidmin","download_url":"https://codeload.github.com/squidmin/gradle-labs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246709985,"owners_count":20821314,"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":["gradle","java","spring","spring-mvc","spring-rest"],"created_at":"2024-10-05T23:20:41.187Z","updated_at":"2025-04-01T21:20:35.748Z","avatar_url":"https://github.com/squidmin.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gradle-labs\n\nGradle learning labs.\n\nMade with:\n- **IntelliJ IDEA 2023.1 (Ultimate Edition)**\n- **openjdk 11.0.17**\n- **Gradle 7.6.1**\n\n\n---\n\n\n## Install \u0026 build\n\n\n\u003cdetails\u003e\n\u003csummary\u003eBuild the JAR using Gradle\u003c/summary\u003e\n\n```shell\n./gradlew clean build\n```\n\n```shell\n./gradlew clean build -x test\n```\n\n```shell\n./gradlew clean build testClasses -x test\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eAdd manifest file\u003c/summary\u003e\n\n```shell\njar -cmvf \\\n  ./build/tmp/jar/MANIFEST.MF \\\n  ./build/libs/gradle-labs-0.0.1-SNAPSHOT.jar \\\n  ./build/classes/java/main/org/squidmin/gradlelabs/GradleLabsApplication.class\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eBuild a container image\u003c/summary\u003e\n\n```shell\ndocker build \\\n  --build-arg GCP_PROJECT_ID=PROJECT_ID \\\n  -t gradle-labs .\n```\n\nExample:\n\n```shell\ndocker build -t \\\n  --build-arg GCP_PROJECT_ID=lofty-root-305785 \\\n  gradle-labs .\n```\n\n\u003c/details\u003e\n\n\n\n## Run the application\n\n\u003cdetails\u003e\n\u003csummary\u003eRun an interactive container instance\u003c/summary\u003e\n\n```shell\ndocker run \\\n  --rm -it \\\n  -e GOOGLE_APPLICATION_CREDENTIALS=$GOOGLE_APPLICATION_CREDENTIALS \\\n  -v $HOME/.config/gcloud:/root/.config/gcloud \\\n  -v $HOME/.m2:/root/.m2 \\\n  gradle-labs\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eRun the JAR using Gradle\u003c/summary\u003e\n\nRun the following commands either:\n- from the `ENTRYPOINT` in the `Dockerfile`, or\n- at the terminal prompt in an interactive container instance.\n\nUse `-P=args` to set Gradle project properties.\n\n```shell\n./gradlew cmdLineJavaExec -Pargs=\"ARG_1 ARG_2 [...] ARG_N\"\n```\n\n**Replace the following**:\n- `ARG_1 ARG_2 [...] ARG_N`: the values of the arguments expected by the application's `main` method.\n\nExample:\n\n```shell\n./gradlew cmdLineJavaExec -Pargs=\"lorem ipsum dolor\"\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eRun the JAR without Gradle\u003c/summary\u003e\n\n\n### `exec java` command\n\n```shell\nexec java -jar \\\n  -Dspring.profiles.active=local \\\n  -DGOOGLE_APPLICATION_CREDENTIALS=$GOOGLE_APPLICATION_CREDENTIALS \\\n  ./build/libs/spring-rest-labs-0.0.1-SNAPSHOT.jar\n```\n\n\n### `java` command\n\nSet system properties using `-Darg`, where `arg` is the argument name.\n\nPass additional arguments to the application's `main` method by placing them after the name of the `jar`.\n\n```shell\njava -Dkey_1=ARG_A -Dkey_2=ARG_B [...] -Dkey_n=ARG_N -jar gradle-labs-0.0.1-SNAPSHOT.jar [ ARG_1 ARG_2 [...] ARG_N ]\n```\n\n**Replace the following**:\n- `-Dkey_1=ARG_A -Dkey_2=ARG_B [...] -Dkey_n=ARG_N`: the system property keys and values.\n- `ARG_1 ARG_2 [...] ARG_N`: the main method arguments.\n\nExample:\n\n```shell\njava -Dfirst=val_a -Dsecond=val_b -Dspring.profiles.active=local -jar \\\n  gradle-labs-0.0.1-SNAPSHOT.jar arg_1 arg_2 arg_3\n```\n\n\n\u003c/details\u003e\n\n\n---\n\n## Tasks\n\n\n### Build tasks\n\n\u003cdetails\u003e\n\u003csummary\u003eDelete the build directory\u003c/summary\u003e\n\n```shell\n./gradlew clean\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eAssemble and test the project\u003c/summary\u003e\n\n```shell\n./gradlew build\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eAssemble the project and skip tests\u003c/summary\u003e\n\n```shell\n./gradlew build -x test\n```\n\nor\n\n```shell\n./gradlew build testClasses -x test\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eRun the project as a Spring Boot application\u003c/summary\u003e\n\n```shell\n./gradlew bootRun\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eResolve the name of the application's main class for the bootRun task\u003c/summary\u003e\n\n```shell\n./gradlew bootRunMainClassName\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eAssemble an executable jar archive containing the main classes and their dependencies\u003c/summary\u003e\n\n```shell\n./gradlew bootJar\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eResolve the name of the application's main class for the bootJar task\u003c/summary\u003e\n\n```shell\n./gradlew bootJarMainClassName\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eAssemble a jar archive containing the main classes\u003c/summary\u003e\n\n```shell\n./gradlew jar\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eAssemble test classes\u003c/summary\u003e\n\n```shell\n./gradlew testClasses\n```\n\n\u003c/details\u003e\n\n\n### Build setup tasks\n\n\u003cdetails\u003e\n\u003csummary\u003eInitialize a new Gradle build\u003c/summary\u003e\n\n```shell\n./gradlew init\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eGenerate Gradle wrapper files\u003c/summary\u003e\n\n```shell\n./gradlew wrapper\n```\n\n\u003c/details\u003e\n\n\n### Application tasks\n\n\u003cdetails\u003e\n\u003csummary\u003eList the tasks available\u003c/summary\u003e\n\n```shell\n./gradlew tasks\n```\n\n\u003c/details\u003e\n\n\n### Documentation tasks\n\n\u003cdetails\u003e\n\u003csummary\u003eGenerate Javadoc API documentation for the main source code\u003c/summary\u003e\n\n```shell\n./gradlew javadoc\n```\n\n\u003c/details\u003e\n\n\n#### Help tasks\n\n\u003cdetails\u003e\n\u003csummary\u003eDisplay the properties of the root project\u003c/summary\u003e\n\n```shell\n./gradlew properties\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eDisplay the tasks runnable from the root project\u003c/summary\u003e\n\n```shell\n./gradlew tasks\n```\n\nPass the option `--all` to see the tasks in more detail:\n\n```shell\n./gradlew tasks --all\n```\n\nTo see more detail about a task, run:\n\n```shell\n./gradlew help --task TASK\n```\n\n**Replace the following**:\n- `TASK`: the name of the task.\n\n\u003c/details\u003e\n\n\n### Verification tasks\n\n\u003cdetails\u003e\n\u003csummary\u003eRun all checks\u003c/summary\u003e\n\n```shell\n./gradlew check\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eRun the test suite\u003c/summary\u003e\n\n```shell\n./gradlew test\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eRecompile the project and run the test suite\u003c/summary\u003e\n\n```shell\n./gradlew clean test\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eRun a specific test class\u003c/summary\u003e\n\n```shell\n./gradlew test --tests TestClassName\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eRun a specific test method of a specific test class\u003c/summary\u003e\n\n```shell\n./gradlew clean test --tests TestClassName.methodName\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eRun a specific test method of a specific test class, passing command line arguments\u003c/summary\u003e\n\n```shell\n./gradlew clean test -Darg_1=example --tests CliArgumentsExampleTest.basicExample\n```\n\n\u003c/details\u003e\n\n\n---\n\n\n## Guides\n\n\n### Gradle\n\n* [Gradle Build Scans – insights for your project's build](https://scans.gradle.com#gradle)\n* [Gradle CLI](https://docs.gradle.org/current/userguide/command_line_interface.html)\n* [Gradle Command Line Arguments](https://www.baeldung.com/gradle-command-line-arguments)\n* [Java Testing](https://docs.gradle.org/current/userguide/java_testing.html)\n* [Gradle Testing](https://www.tutorialspoint.com/gradle/gradle_testing.htm)\n* [JUnit 5 Tutorial: Running Unit Tests with Gradle](https://www.petrikainulainen.net/programming/testing/junit-5-tutorial-running-unit-tests-with-gradle/)\n* [Gradle: How to Run a Single Unit Test Class](https://mkyong.com/gradle/gradle-how-to-run-a-single-unit-test-class/)\n* [Gradle: How to Show Standard Output or Error Output from Tests](https://blog.mrhaki.com/2014/10/gradle-goodness-show-standard-out-or.html)\n* [Gradle Usage with Spring Framework](https://spring.io/guides/gs/gradle/#scratch)\n\n\n### Spring\n\n* [Accessing Data with JPA](https://spring.io/guides/gs/accessing-data-jpa/)\n* [Accessing JPA Data with REST](https://spring.io/guides/gs/accessing-data-rest/)\n* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)\n* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/)\n\n\n---\n\n\n### Other references\n\n* [Official Gradle documentation](https://docs.gradle.org)\n* [Spring Boot Gradle Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.7.10/gradle-plugin/reference/html/)\n* [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.7.10/gradle-plugin/reference/html/#build-image)\n* [Spring Configuration Processor](https://docs.spring.io/spring-boot/docs/2.7.10/reference/htmlsingle/#appendix.configuration-metadata.annotation-processor)\n* [Rest Repositories](https://docs.spring.io/spring-boot/docs/2.7.10/reference/htmlsingle/#howto.data-access.exposing-spring-data-repositories-as-rest)\n* [Spring Web](https://docs.spring.io/spring-boot/docs/2.7.10/reference/htmlsingle/#web)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsquidmin%2Fgradle-labs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsquidmin%2Fgradle-labs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsquidmin%2Fgradle-labs/lists"}