非 Maven 插件项目(离线开发)
新建工程
打开 IDEA,File->New->New Project...
Build system选择IntelliJ(默认),JDK使用JDK11。

配置插件的必要依赖
选择File->Project Structure...菜单,打开项目结构弹窗。
选择 Project Settings中的Libraries。
按照下图所示选择,然后在文件选择器中选择<Magicdraw 安装目录>\lib。

之后的Choose Modules弹窗点击确定。然后点击OK确认项目结构配置完成。
此时在左侧项目树结构的External Libraries中应该能看到lib(展开可以看到一些 magic 的 jar 依赖)。

编写插件
- 在 src 目录上滑鼠右键点击,选择
New->Java Class。键入org.example.test1.MainPlugin,确定,创建 MainPlugin.java。
在编辑区键入以下内容。
package org.example.test1;
import com.nomagic.actions.AMConfigurator;
import com.nomagic.actions.ActionsCategory;
import com.nomagic.actions.ActionsManager;
import com.nomagic.magicdraw.actions.ActionsConfiguratorsManager;
import com.nomagic.magicdraw.actions.MDAction;
import com.nomagic.magicdraw.core.Application;
import com.nomagic.magicdraw.plugins.Plugin;
import javax.annotation.CheckForNull;
import java.awt.event.ActionEvent;
public class MainPlugin extends Plugin {
@Override
public void init() {
ActionsConfiguratorsManager.getInstance().addMainMenuConfigurator(new AMConfigurator() {
@Override
public void configure(ActionsManager actionsManager) {
ActionsCategory category = new ActionsCategory(null, "菜单分类");
category.setNested(true);
category.addAction(new MDAction(null, "展示 Hello World", null, null) {
@Override
public void actionPerformed(@CheckForNull ActionEvent actionEvent) {
Application.getInstance().getGUILog().showMessage("Hello World!");
}
});
actionsManager.addCategory(category);
}
});
}
@Override
public boolean close() {
return true;
}
@Override
public boolean isSupported() {
return true;
}
}- 在项目根目录
TestPlugin上滑鼠右键点击,选择New->File。键入plugin.xml。
在编辑区对应文件内键入以下内容。
<?xml version="1.0" encoding="UTF-8"?>
<plugin
id="org.example.test1.TestPlugin"
name="Test Plugin"
version="1.0"
provider-name="example"
class="org.example.test1.MainPlugin">
<requires>
<api version="1.2"/>
</requires>
<runtime>
<library name="TestPlugin.jar"/>
</runtime>
</plugin>第 7 行:插件的主类入口(即继承 Plugin 的类)。 第 13 行:插件最终产出物的名称。
打包运行
开发者简单打包
配置
选择File->Project Structure...菜单,打开项目结构弹窗。
选择 Project Settings中的Artifacts。按照下图所示选择。

修改名称为plugin.xml中第 13 行的名称(不用.jar后缀),将 Output Layout 中右侧 Available Elements 中的'TestPlugin' compile output拖拽到左侧的TestPlugin.jar上面,点击Apply按钮,再点击OK。

打包
选择Build->Build Artifacts..。

进度条走完后,可以在左侧树结构中看到out\artifacts\TestPlugin文件夹下面的TestPlugin.jar产物。
在 Magicdraw 安装目录下的 plugins 文件夹中新建 org.example.test1.TestPlugin 文件夹。
在文件夹下放入打包产物TestPlugin.jar。
并在文件夹下放入项目根目录下面的plugin.xml。
到这里插件就已经部署好了,接下来启动 Magicdraw 即可。
启动之后我们可以看到我们定义的菜单。

点击后出现 hello world 弹框。

提交给客户的打包
如果测试了开发者简单打包,可以先删掉 plugins 文件夹下面的org.example.test1.TestPlugin,方便这一小节后看效果。
配置
在项目根目录下新建MDR_Plugin_{插件名称}_{资源描述id}_descriptor.xml。资源描述 id 尽量唯一,本文以 7426518 为例。插件名称以TestPlugin为例(MDR_Plugin_TestPlugin_7426518_descriptor.xml)。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<resourceDescriptor critical="false" date="2025-07-16"
description="这只是一个测试插件"
group="example" homePage="" id="7426518" mdVersionMax="higher" mdVersionMin="17.0"
name="TestPlugin" product="TestPlugin" restartMagicdraw="true" type="Plugin">
<version human="1.0" internal="1.0.111" resource="1.0.111"/>
<provider email="" homePage="" name="开发者名称"/>
<edition>Reader</edition>
<edition>Community</edition>
<edition>Standard</edition>
<edition>Professional Java</edition>
<edition>Professional C++</edition>
<edition>Professional</edition>
<edition>Architect</edition>
<edition>Enterprise</edition>
<installation>
<file from="plugins/org.example.test1.TestPlugin/TestPlugin.jar" to="plugins/org.example.test1.TestPlugin/TestPlugin.jar"/>
<file from="plugins/org.example.test1.TestPlugin/plugin.xml" to="plugins/org.example.test1.TestPlugin/plugin.xml"/>
</installation>
</resourceDescriptor>选择File->Project Structure...菜单,打开项目结构弹窗。
选择 Project Settings中的Artifacts。按照下图所示选择。

修改 Name 为导入包,修改后缀为zip。

右键Create Directory,创建如下的结构。

在resourcemanager上右键,Add Copy of->File,选择MDR_Plugin_TestPlugin_7426518_descriptor.xml。

在org.example.test1.TestPlugin上右键,Add Copy of->File,选择plugin.xml。
在org.example.test1.TestPlugin上右键,Add Copy of->Artifact,选择TestPlugin。
点击Apply,此时结构应如下所示。

点击OK,关闭项目结构弹窗。
打包
选择Build->Build Artifacts..。

进度条走完后,可以在左侧树结构中看到out\artifacts文件夹下面的导入包.zip产物。
我们先打开 Magicdraw,在主菜单中选择 Help->Resource/Plugin Manager。在弹出的 Dialog 中选择Import按钮,定位到导入包.zip,确定。成功的话应该会有下面的提示。

关闭 Magicdraw 重新打开,可以看到插件成功生效。