{"id":32458366,"url":"https://github.com/lukoerfer/gradle-magicdraw","last_synced_at":"2025-10-26T10:53:21.336Z","repository":{"id":43444945,"uuid":"127896857","full_name":"lukoerfer/gradle-magicdraw","owner":"lukoerfer","description":"Gradle plugin to develop plugins for MagicDraw","archived":false,"fork":false,"pushed_at":"2021-04-22T10:25:13.000Z","size":207,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-03-02T21:56:10.655Z","etag":null,"topics":["gradle-plugin","groovy","java","magicdraw"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lukoerfer.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}},"created_at":"2018-04-03T11:20:55.000Z","updated_at":"2021-12-20T09:34:21.000Z","dependencies_parsed_at":"2022-09-10T14:50:32.864Z","dependency_job_id":null,"html_url":"https://github.com/lukoerfer/gradle-magicdraw","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/lukoerfer/gradle-magicdraw","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukoerfer%2Fgradle-magicdraw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukoerfer%2Fgradle-magicdraw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukoerfer%2Fgradle-magicdraw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukoerfer%2Fgradle-magicdraw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lukoerfer","download_url":"https://codeload.github.com/lukoerfer/gradle-magicdraw/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukoerfer%2Fgradle-magicdraw/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281092764,"owners_count":26442440,"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","status":"online","status_checked_at":"2025-10-26T02:00:06.575Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-plugin","groovy","java","magicdraw"],"created_at":"2025-10-26T10:53:17.852Z","updated_at":"2025-10-26T10:53:21.328Z","avatar_url":"https://github.com/lukoerfer.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gradle MagicDraw Plugin\nGradle plugin to develop plugins for MagicDraw\n\n## Motivation\nThe MagicDraw developer guide provides manuals to develop plugins for MagicDraw with either Eclipse or IntelliJ IDEA.\nUsing build tools like Maven or Gradle is not supported, even if it can be considered best practice nowadays.\nThis plugin tries to provide a set of tools to simplify the development of plugins for MagicDraw with Gradle.\n\n## Download\nThe plugin is available via the [Gradle plugin portal](https://plugins.gradle.org/plugin/de.lukaskoerfer.gradle.magicdraw). Simply use the `plugins` block to apply the plugin to your project:\n\n``` gradle\nplugins {\n    id 'de.lukaskoerfer.gradle.magicdraw' version '0.3'\n}\n```\n\nThe plugin does not require any other plugin. No other plugin will be applied automatically.\n\n## Usage\n\n### Configuration\n\nOnce the plugin is applied, it can be configured via the `magicDraw` closure:\n\n``` gradle\nmagicDraw {\n    installDir = file('C:/MagicDraw')\n    plugins {\n        main {\n            id = 'my.plugin.id'\n            version = '1.2.3'\n            label = 'My plugin'\n            className = 'package.path.to.PluginClass'\n            provider = 'John Doe'\n        }\n    }\n}\n```\n\nThe most important configuration parameter is called `installDir` and must be set to the installation directory of MagicDraw.\n\n\u003e It is also possible to use the project property `magicDraw.installDir` to set the installation directory from the user-specific `gradle.properties` file.\n\nEvery MagicDraw plugin needs a descriptor file (`plugin.xml`) describing the most important aspects as the ID, the name, the version, the provider, the implementation class, referenced libraries and requirements regarding the MagicDraw API or other plugins.\n\nThe Gradle MagicDraw plugin will generate this descriptor file automatically. The descriptor file can be parametrized using the properties inside the `magicDraw.plugins.main` closure.\nFor technical reasons, the descriptor attributes *name*, *class* and *provider-name* are mapped to properties with other names (*label*, *className* and *provider*).\n\nThe five properties in the example above are required for each plugin. However, only the *label* and the *className* must always be specified via the closure.\nBoth the *id* and the *version* can be left out, which will cause the Gradle MagicDraw plugin to use the Gradle properties `project.group` and `project.version`.\nThe *provider* property will default to the system property `user.name`, if not specified.\n\n\u003e When leaving out the properties *id* and *version* to use the Gradle properties `project.group` and `project.version`, it is necessary to specify those Gradle properties, otherwise the build will fail.\n\n### Dependencies\n\nAll MagicDraw libraries and their dependencies are provided in a single Gradle configuration called `magicDraw`. To use these dependencies in compilation or to import them into an IDE, it may required to extend another configuration like `compileOnly`:\n\n``` gradle\nconfigurations {\n    compileOnly.extendsFrom magicDraw\n}\n```\n\nAnother possible syntax is using a dependency:\n\n``` gradle\ndependencies {\n    compileOnly configurations.magicDraw\n}\n```\n\nThe `compileOnly` configuration is used to prevent the MagicDraw dependencies from being carried around with the project, as they are available with any MagicDraw installation. Of course, it is possible to use other configurations like `compile` or `implementation` and to manually take care, e.g. when creating a \"fat\" jar.\n\n### Tasks\n\nThe Gradle MagicDraw plugin will create the following tasks:\n\n* **assemblePlugin** - Assembles all MagicDraw plugin components in this project\n* **launch** - Launches MagicDraw with this plugin\n* **installPlugin** - Installs this MagicDraw plugin into the local MagicDraw instance\n* **uninstallPlugin** - Removes this MagicDraw plugin from the local MagicDraw instance\n\nTo let the Gradle MagicDraw plugin provide the highest possible amount of flexibility, it is not linked or integrated with any other plugin like the `java` plugin.\nBy default, the `assemblePlugin` task does not collect any files, so it is required to register any library files that are used to implement the plugin, e.g.:\n\n``` gradle\nassemblePlugin {\n    from jar\n}\n```\n\nThe example above can be used when using the `java` plugin. To include any dependencies, it is required to add the runtime classpath, too:\n\n``` gradle\nassemblePlugin {\n    from jar\n    from configurations.runtime\n}\n```\n\nInstead of passing all dependencies manually, it is also possible to use the [`com.github.johnrengelman.shadow`](https://github.com/johnrengelman/shadow) plugin and create a \"fat\" jar:\n\n``` gradle\nassemblePlugin {\n    from shadowJar\n}\n```\n\n## License\nThe software is licensed under the [MIT license](https://github.com/lukoerfer/gradle-magicdraw/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukoerfer%2Fgradle-magicdraw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flukoerfer%2Fgradle-magicdraw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukoerfer%2Fgradle-magicdraw/lists"}