{"id":15138548,"url":"https://github.com/jponge/vertx-gradle-plugin","last_synced_at":"2025-03-02T05:31:32.306Z","repository":{"id":24752767,"uuid":"102364281","full_name":"jponge/vertx-gradle-plugin","owner":"jponge","description":"An opinionated Gradle plugin for Vert.x projects","archived":false,"fork":false,"pushed_at":"2023-03-04T03:19:37.000Z","size":1015,"stargazers_count":113,"open_issues_count":13,"forks_count":17,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-02-15T21:41:22.042Z","etag":null,"topics":["gradle","gradle-plugin","vertx"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/jponge.png","metadata":{"files":{"readme":"README.adoc","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-09-04T13:25:50.000Z","updated_at":"2024-08-03T19:28:21.000Z","dependencies_parsed_at":"2024-09-16T12:36:11.034Z","dependency_job_id":"1b2f80b7-2e2d-485c-bcc6-31ea4e9f98f0","html_url":"https://github.com/jponge/vertx-gradle-plugin","commit_stats":null,"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jponge%2Fvertx-gradle-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jponge%2Fvertx-gradle-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jponge%2Fvertx-gradle-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jponge%2Fvertx-gradle-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jponge","download_url":"https://codeload.github.com/jponge/vertx-gradle-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241465006,"owners_count":19967238,"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","gradle-plugin","vertx"],"created_at":"2024-09-26T07:41:13.042Z","updated_at":"2025-03-02T05:31:31.928Z","avatar_url":"https://github.com/jponge.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Vert.x Gradle Plugin\n\nAn _opinionated_ Gradle plugin for Vert.x projects.\n\nimage:https://github.com/jponge/vertx-gradle-plugin/workflows/Java%20CI%20with%20Gradle/badge.svg[Java CI with Gradle]\nimage:https://img.shields.io/github/tag/jponge/vertx-gradle-plugin.svg[tag, link=https://plugins.gradle.org/plugin/io.vertx.vertx-plugin]\nimage:https://img.shields.io/github/license/jponge/vertx-gradle-plugin.svg[license, link=https://github.com/jponge/vertx-gradle-plugin/blob/master/LICENSE]\nimage:https://img.shields.io/maven-metadata/v/https/plugins.gradle.org/m2/io/vertx/vertx-plugin/io.vertx.vertx-plugin.gradle.plugin/maven-metadata.xml.svg?label=gradlePluginPortal[\"Maven Central\",link=\"https://plugins.gradle.org/plugin/io.vertx.vertx-plugin\"]\n\n== What the plugin does\n\nThis https://plugins.gradle.org/plugin/io.vertx.vertx-plugin[plugin] simplifies building and running Vert.x applications with Gradle.\n\nIt automatically applies the following plugins:\n\n* `https://docs.gradle.org/current/userguide/java_plugin.html[java]`\n* `https://docs.gradle.org/current/userguide/application_plugin.html[application]` + `https://docs.gradle.org/current/userguide/distribution_plugin.html[distribution]` for packaging the app for the JVM\n* `https://github.com/johnrengelman/shadow[shadow]` to generate _uber Jars_ with all dependencies bundled\n\nYou can omit versions from elements in the https://github.com/vert-x3/vertx-stack[the Vert.x stack as the plugin references the corresponding Maven BOM.\n\nNOTE: From version `0.9.0` the plugin no longer sets the `sourceCompatibility` to Java 8. You can set it manually like in other `https://docs.gradle.org/current/userguide/building_java_projects.html#introduction[Java projects]`.\n\nThe plugin automatically adds `io.vertx:vertx-core` as a `compile` dependency, so you don't need to do it.\n\nThe plugin provides a `vertxRun` task that can take advantage of the Vert.x auto-reloading capabilities, so you can _just_ run it then have you code being automatically compiled and reloaded as you make changes.\n\nNOTE: If you encounter issues with your application still being running in the background due to how the Gradle caching works, then you may try running the `vertxRun` task with `gradle --no-daemon vertxRun`.\n\nThe plugin provides a `vertxDebug` task enabling to debug your code.\n\nNOTE: Reloading is disabled while debugging. Moreover in order to prevent warnings while in debug mode, Vert.x options `maxEventLoopExecuteTime` and `maxWorkerExecuteTime` are set to `java.lang.Long.MAX_VALUE`\n\n=== Minimal example\n\n[source,groovy]\n\n----\nplugins {\n  id 'io.vertx.vertx-plugin' version 'x.y.z' // \u003c1\u003e\n}\n\nrepositories {\n  jcenter()\n}\n\nvertx {\n  mainVerticle = 'sample.App'\n}\n----\n\nimage:https://img.shields.io/maven-metadata/v/https/plugins.gradle.org/m2/io/vertx/vertx-plugin/io.vertx.vertx-plugin.gradle.plugin/maven-metadata.xml.svg?label=gradlePluginPortal[\"Maven Central\",link=\"https://plugins.gradle.org/plugin/io.vertx.vertx-plugin\"]\nReplace `x.y.z` with a version available on the https://plugins.gradle.org/plugin/io.vertx.vertx-plugin[Gradle Plugin Portal]\n\n\n\nProvided `sample.App` is a Vert.x verticle, then:\n\n* `gradle shadowJar` builds an executable Jar with all dependencies: `java -jar build/libs/simple-project-all.jar`\n* `gradle vertxRun` starts the application and automatically recompiles (`gradle classes`) and reloads the code when any file under `src/` is being added, modified or deleted.\n\n=== A slightly more elaborated example\n\nA project using `vertx-web` and `logback` would use a `build.gradle` definition like the following one:\n\n[source,groovy]\n----\nplugins {\n  id 'io.vertx.vertx-plugin' version 'x.y.z'\n}\n\nrepositories {\n  jcenter()\n}\n\ndependencies {\n  compile \"io.vertx:vertx-web\" // \u003c1\u003e\n  compile \"ch.qos.logback:logback-classic:1.2.3\" // \u003c2\u003e\n}\n\nvertx {\n  mainVerticle = \"sample.App\"\n  vertxVersion = \"4.1.2\" // \u003c3\u003e\n}\n----\n\u003c1\u003e Part of the Vert.x stack, so the version can be omitted.\n\u003c2\u003e Logback needs a version.\n\u003c3\u003e You can override to point to any specific release of Vert.x.\n\n=== Kotlin projects\n\nThis plugin works with Kotlin projects too:\n\n\n[source,groovy]\n----\nplugins {\n  id 'io.vertx.vertx-plugin' version 'x.y.z'\n  id 'org.jetbrains.kotlin.jvm' version 'a.b.c'\n}\n\nrepositories {\n  jcenter()\n}\n\ndependencies {\n  compile 'io.vertx:vertx-lang-kotlin'\n  compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'  // \u003c1\u003e\n}\n\nvertx {\n  mainVerticle = \"sample.MainVerticle\"  // \u003c2\u003e\n}\n\ntasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {   // \u003c3\u003e\n  kotlinOptions {\n    jvmTarget = \"1.8\"\n  }\n}\n----\n\u003c1\u003e This pulls all the Kotlin standard library dependencies for JDK 8+.\n\u003c2\u003e This verticle can be written in Kotlin (or Java).\n\u003c3\u003e By default Kotlin compiles to Java 6 bytecode, so it is worth changing all compilation tasks to match Java 8 bytecode.\n\n=== Using Kotlin DSL\n\n[source,kotlin]\n----\nplugins {\n  id(\"io.vertx.vertx-plugin\") version \"x.y.z\"\n}\n\nrepositories {\n  jcenter()\n}\n\nvertx { // \u003c1\u003e\n  mainVerticle = \"sample.App\"\n}\n----\n\u003c1\u003e Extension method on `org.gradle.api.Project`.\n\n== Configuration\n\nThe configuration happens through the `vertx` Gradle extension.\n\nThe following configuration can be applied, and matches the `vertx run` command-line interface when possible:\n\n[cols=3,options=\"header\"]\n|===\n| Option\n| Description\n| Default value\n\n|`vertxVersion`\n|the Vert.x version to use\n|`\"4.1.2\"`\n\n|`launcher`\n|the main class name\n| `io.vertx.core.Launcher`\n\n|`mainVerticle`\n|the main verticle\n| `\"\"`\n\n|`args`\n|a list of command-line arguments to pass\n|`[]`\n\n|`config`\n|either a file or direct JSON data to provide configuration\n|`\"\"`\n\n|`workDirectory`\n|the working directory\n|`project.projectDir`\n\n|`jvmArgs`\n|extra JVM arguments\n|`[]`\n\n|`redeploy`\n|whether automatic redeployment shall happen or not\n|`true`\n\n|`watch`\n|Ant-style matchers for files to watch for modifications\n|[`src/\\**/*`]\n\n|`onRedeploy`\n|the Gradle tasks to run before redeploying\n|`[\"classes\"]`\n\n|`redeployScanPeriod` / `redeployGracePeriod` / `redeployTerminationPeriod`\n|tuning for the redeployment watch timers\n|`1000L` (1 second each)\n\n|`debugPort`\n| The debugger port\n|`5005L`\n\n|`debugSuspend`\n| Whether or not the application must wait until a debugger is attached to start\n|`false`\n\n|===\n\nThe default values are listed in `src/main/kotlin/io/vertx/gradle/VertxExtension.kt`.\n\nBy default redeployment is enabled, running `gradle classes` to recompile, and watching all files under `src/`.\n\n== Licensing\n\n----\nCopyright 2017-2019 Red Hat, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n----\n\n== Credits\n\nThe plugin was originally created by https://julien.ponge.org/[Julien Ponge].\n\nThanks to the folks at Gradle for their guidance and technical discussions:\n\n* Cédric Champeau\n* Stefan Oheme\n* Rodrigo B. de Oliveira\n* Eric Wendelin\n* Benjamin Muschko\n\nThanks also to https://github.com/jponge/vertx-gradle-plugin/graphs/contributors[all the contributors to this project].\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjponge%2Fvertx-gradle-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjponge%2Fvertx-gradle-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjponge%2Fvertx-gradle-plugin/lists"}