{"id":29170239,"url":"https://github.com/mendixlabs/mendix-gradle-plugin","last_synced_at":"2025-07-19T23:36:01.530Z","repository":{"id":295835667,"uuid":"816475574","full_name":"mendixlabs/mendix-gradle-plugin","owner":"mendixlabs","description":"Gradle plugin to work with a Mendix project. Provides wrappers for mx and mxbuild tools and distribution tasks.","archived":false,"fork":false,"pushed_at":"2025-07-11T19:39:23.000Z","size":155,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-07-11T21:26:16.473Z","etag":null,"topics":[],"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/mendixlabs.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,"zenodo":null}},"created_at":"2024-06-17T20:44:47.000Z","updated_at":"2025-07-11T19:39:20.000Z","dependencies_parsed_at":"2025-05-27T16:36:21.776Z","dependency_job_id":"c16a2eb9-9709-41ad-8495-1e2f68fb3c42","html_url":"https://github.com/mendixlabs/mendix-gradle-plugin","commit_stats":null,"previous_names":["mendixlabs/mendix-gradle-plugin"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/mendixlabs/mendix-gradle-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendixlabs%2Fmendix-gradle-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendixlabs%2Fmendix-gradle-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendixlabs%2Fmendix-gradle-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendixlabs%2Fmendix-gradle-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mendixlabs","download_url":"https://codeload.github.com/mendixlabs/mendix-gradle-plugin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mendixlabs%2Fmendix-gradle-plugin/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266041982,"owners_count":23867960,"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":[],"created_at":"2025-07-01T12:39:31.272Z","updated_at":"2025-07-19T23:36:01.487Z","avatar_url":"https://github.com/mendixlabs.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mendix plugin for Gradle\n\nThis plugin helps you to work with a Mendix project using Gradle. It provides \nwrappers for the Mendix tools as `mxbuild` and `mx`, making interaction\nversion agnostic. The plugin also provides run and distribution options. The\nplugin works on Windows and Linux. Mac support will be added when CLI tools\nare available.\n\nAdditionally the plugin configures the project as Java application so that IDEs\nsupporting Gradle, like IntelliJ IDEA, can be used to work with the project.\nThe configuration adds the project Java source files and necessary dependencies.\n\n## Experimental\n\nThis is an experimental project and comes without warranty and support.\n\nThis project aims to experiment with the interaction, automation, and\ndistribution of Mendix applications. We welcome feedback on these\naspects that could be addressed by this plugin or in the Mendix platform \nitself.\n\n## Version support for Mendix tools and runtime\n\nThis plugin covers two items\n* Wrap Mendix CLI tools for easy use\n* Build a Mendix app distribution\n\n### CLI tool support\n\nThe Gradle plugin supports Mendix CLI tools for various versions and operating\nsystems. \n\n| Mendix Version | OS       | Notes                                                                                                                       | \n|----------------|----------|-----------------------------------------------------------------------------------------------------------------------------|\n| All            | Windows  | On Windows all versions are supported when they are installed.                                                              |\n| \\\u003e 9.16        | Linux    | For Linux tools tools are always downloaded from CDN. Starting this version tools are compiled as native Linux executables. |\n| \\\u003e 9.23        | Windows  | Starting this version Windows tooling can be downloaded from CDN. In case not available locally.                            |\n\nNote: when running Mendix tooling on Linux it depends on system library \n`libuci-dev` to be installed.\n\nNote: MacOS is not supported as StudioPro Mac doesn't ship CLI tools.\n\n### App distribution support\n\nVersion 10.11 of Mendix runtime includes a boot file config option \n(see `mxWriteConfig` and `mxRun`) which doesn't depend on external tools \nlike M2EE Tools or Docker Build Pack to run an application. \n\nStarting version 10.11 the `mxRun` and `mxDistZip` commands are supported\nto create a Mendix app distribution package. \n\n\n## Create or configure a Mendix project\n\nTo use the plugin your Mendix project needs to be a Gradle project. To create \na Gradle project execute `gradle.bat`. On Windows Studio Pro includes a copy\nof Gradle, based on th default installation folder the command will be\n\n```bat\n\"c:\\Program Files\\Mendix\\gradle-8.5\\bin\\gradle.bat\" init --type basic --dsl groovy\n```\n\nAnswer the values and check if the project is created, `gradlew.bat` and \n`build.gradle` is created.\n\nOpen `build.gradle` and add \n\n```groovy\nplugins {\n    id \"application\"\n    id \"com.mendixlabs.mendix-gradle-plugin\" version \"0.0.7\"\n}\n \nmendix {\n    mendixVersion = \"10.21.1.64969\"\n    mprFileName = \"App.mpr\"\n}\n```\n\nSee [Extension configuration](docs/extension.md) for plugin configuration details. In case\nthe Gradle files are added to a folder where the Mendix project already exists, make sure\nthat `mprFileName` is set to the name of the Mendix project file.\n\nFor a new project initialize t with\n\n```bat\ngradlew.bat mxEnsureModeler mxInit\n```\n\n## Versioning\n\nThe plugin uses the `version` value from `gradle.properties` in the build \nand distribution tasks as input.\n\n## Usage\n\nUse `gradlew.bat tasks` to view which [tasks](docs/tasks.md) are available. It \nis also possible to specify [custom tasks](docs/mxcommand.md).\n\nNote: task dependencies are not set for `mxbuild`. Mxbuild takes quite some \ntime and this plugin doesn't contain a good way yet to determine if the \nproject and its associated files have changed. Therefore it is required to\nrun `mxbuild` manually when the project source has changed.\n\n\n### Build an app\n\n```bat\ngradlew.bat mxbuild\n```\n\n### Run an app\n\nAssumes `mxbuild` is executed.\n\n```bat\ngradlew.bat mxEnsureRuntime mxWriteConfigs mxDeployMda mxRun\n```\n\n### Distribute an app\n\nAssumes `mxbuild` is executed.\n\n```bat\ngradlew.bat mxEnsureRuntime mxWriteConfigs mxStartScripts mxDistZip\n```\n\nTo see the content of the distribution browse to `build\\distributions` and \nopen the zip. To run the distribution in this project execute.\n\n```bat\ngradlew.bat installMxDist\nbuild\\install\\\u003capp-name\u003e\\bin\\start.bat\n```\n\n## IDE Support\n\nThe plugins configures the project as Java application for IDEs that support\nGradle. Java dependencies are added based on the files present in the `userlib`\nand `vendorlib` folder. To manage dependencies use the Java Dependencies option\nfor the Module Settings inside Studio Pro and then sync the project. Reload \nthe project after changing in the IDE to see the changes.\n\nThe Java version specified inside the Mendix project is not yet synced. Set the\n`java.sourceCompatibility` and `java.targetCompatibility` in the `build.gradle`\nfor this.\n\n## Developing\n\nThis plugin is based on \n\n* Java 11: This is the Java version supported by Mendix 9 and the early 10 versions.\n* Gradle 8.5: Studio Pro ships with this version and hence this version is used as\nthat is already available on the developers machine. \n\nTo use a development version, check out this project and compile and publish. For Gradle \nmake this version available with Java on the PATH or set JAVA_HOME. Then execute the \nfollowing command to publish the plugin into the local maven cache.\n\n```bat\ngradlew.bat build publishToMavenLocal\n```\n\nTo use the development version in a project add the following at the top of \nthe `settings.gradle` file:\n\n```groovy\npluginManagement {\n    repositories {\n        mavenLocal()\n        mavenCentral()\n        gradlePluginPortal()\n    }\n}\n```\n\nThen configuration the plugin target project using the version found in the \n`plugin/build.gradle.kts` file.\n\n\n## License\n\nCopyright 2024 Mendix Technology BV\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\nThe license is included in the project as [LICENSE](LICENSE).  ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmendixlabs%2Fmendix-gradle-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmendixlabs%2Fmendix-gradle-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmendixlabs%2Fmendix-gradle-plugin/lists"}