Skip to content

非 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 依赖)。

编写插件

  1. 在 src 目录上滑鼠右键点击,选择New->Java Class。键入org.example.test1.MainPlugin,确定,创建 MainPlugin.java。

在编辑区键入以下内容。

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;
    }
}
  1. 在项目根目录TestPlugin上滑鼠右键点击,选择New->File。键入plugin.xml

在编辑区对应文件内键入以下内容。

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
<?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 重新打开,可以看到插件成功生效。