MagicDraw二次开发过程
文章目录
帮助文档关键内容
-
插件是唯一方式。
Plugins are the only one way to change the functionality of a modeling tool.
-
插件运行过程示意图:
插件管理器会扫描plugins下所有文件夹,文件夹内需要有插件描述文件,根据文件中的描述找到插件类,判断是否继承
com.nomagic.magicdraw.plugins.Plugin,并实现了init()方法。
插件开发流程
1. 在plugins文件夹下创建插件文件夹
2. 编写插件代码
注:必须有一个类继承com.nomagic.magicdraw.plugins.Plugin
The plugin must contain at least one class derived from the com.nomagic.magicdraw.plugins.Plugin class.
3. 编译并打包成*.jar*文件3
4. 编写描述文件plugin.xml
IDEA开发过程
开发准备
-
通过settings > Appearance & Behavior > Path Variables添加变量
MAGIC_DRAW_INSTALL_DIRECTORY指向安装目录(便于多人开发时解决各计算机依赖包位置不同的问题); -
修改配置文件MagicDraw\bin\magicdraw.properties,在
JAVA_ARGS添加属性-Dmd.plugins.dir="absolute path to plugins directory1;absolute path to plugins directory2"目录直接写当前正在开发插件目录,这样启动MagicDraw后会到该目录加载插件(经过测试发现不修改配置,在启动IDEA调试后MagicDraw也可以加载插件);
注:在.properties中需要使用转义字符,否则会导致配置不生效,所有插件丢失,示例如下
-Dmd.plugins.dir\="\C:\\Program Files\\MagicDraw\\plugins;D\:\\09_Project\\Simulation\\SYSML\\ide\\intellij\\MagicDraw development\\plugins"
开发流程
-
创建空项目;
-
添加
Libraries,并在Modules中设置Dependencies引用;注:Libraries指向MAGIC_DRAW_INSTALL_DIRECTORY\lib整个文件夹,并且需要手动设置递归(否则会出现依赖缺失),在配置文件.idea\libraries\xxx.xml文件下直接手动修改
<jarDirectory url="file://$MAGIC_DRAW_INSTALL_DIRECTORY$/lib" recursive="true" /> -
Edit Configurations;
具体参数如下:
MagicDraw with all plugins -Xmx2000M -Xss1024K -XX:PermSize=60M -XX:MaxPermSize=200M -DLOCALCONFIG=true -Dmd.plugins.dir=${MAGIC_DRAW_INSTALL_DIRECTORY}/plugins;.. "-javaagent:${MAGIC_DRAW_INSTALL_DIRECTORY}/openapi/ide/lib/com.nomagic.magicdraw.intellij.launcher.jar" -jar "${MAGIC_DRAW_INSTALL_DIRECTORY}/openapi/ide/lib/com.nomagic.magicdraw.intellij.launcher.jar" com.nomagic.magicdraw.LaunchGateway -verbose $MODULE_DIR$ -
创建插件类;
继承
com.nomagic.magicdraw.plugins.Plugin,并实现init()、close()、isSupported()方法。package simulation; import com.nomagic.magicdraw.core.Application; import com.nomagic.magicdraw.plugins.Plugin; /** * 插件 */ public class SimulationPlugin extends Plugin { public static boolean initialized; @Override public void init() { initialized = true; Application.getInstance().getGUILog().showMessage("Simulation plugin initialized.");

本文详细介绍了MagicDraw的二次开发流程,包括在plugins文件夹下创建插件、编写插件代码、打包成jar文件、编写plugin.xml描述文件等步骤。在IDEA中进行开发时,需要配置MAGIC_DRAW_INSTALL_DIRECTORY变量,以及调整MagicDraw的启动参数。开发过程中可能遇到的问题,如ClassNotFoundException、事件监听、插件依赖等,也给出了相应的解决方案。此外,特别提到了基于JDK11开发MagicDraw Systems of Systems Architect 2021X插件的注意事项。
3785

被折叠的 条评论
为什么被折叠?



