mendix模块文件结构 - modric2jeff/archive GitHub Wiki
在Mendix中,mpk(Mendix Package)文件是一个模块的封装文件,用于存储模块的所有内容。一个mpk文件相当于一个压缩包,包含了模块中定义的所有资源,包括数据实体、微流、页面、脚本、样式表等。你可以将mpk文件导出并导入到其他Mendix应用程序中,从而实现模块的重用。
mpk文件的基本结构 一个mpk文件实际上是一个ZIP格式的压缩文件,包含多个文件和文件夹,具体内容如下:
- manifest.xml manifest.xml是mpk文件中最重要的文件之一,描述了模块的基本信息和结构。 它定义了模块的名称、版本、描述以及模块包含的内容类型(例如实体、页面、微流等)。 这个文件包含关于模块的元数据(metadata),并用于Mendix在导入时识别模块的版本和依赖关系。 示例 manifest.xml 内容:
xml 复制代码 MyCustomModule 1.0.0 A simple custom module en 2. domainmodel.xml 该文件包含模块的 领域模型(Domain Model),其中定义了所有的数据实体、属性和实体之间的关系。 它描述了模块的数据结构,通常是由Mendix Studio Pro在创建实体时自动生成的。 3. microflows 文件夹 包含了模块中的微流(Microflows)。微流是Mendix应用中的业务逻辑,通常是自动执行的流程,控制数据的操作、外部服务的调用等。 微流通常以.mxf为扩展名。 示例目录结构:
markdown 复制代码 microflows/ CreateCustomer.mxf DeleteCustomer.mxf 4. pages 文件夹 存储了模块中定义的页面(Pages)。页面是用户界面的组成部分,通常是与数据模型绑定的视图。 页面通常以.mpx为扩展名,包含了页面布局、控件配置等信息。 示例目录结构:
markdown 复制代码 pages/ CustomerPage.mpx OrderPage.mpx 5. widgets 文件夹(如果有自定义小部件) 如果模块包含自定义小部件(Widgets),这些小部件的文件会被包含在这个文件夹中。自定义小部件通常是用JavaScript、HTML、CSS等编写的,Mendix平台将其嵌入到页面中。 小部件的文件通常包括: widget.js:自定义小部件的JavaScript逻辑。 widget.xml:小部件的配置文件,定义小部件的属性和方法。 widget.css:小部件的样式表。 示例目录结构:
markdown 复制代码 widgets/ MyCustomWidget/ widget.js widget.xml widget.css 6. resources 文件夹 这个文件夹包含模块使用的资源文件,例如图片、样式文件、JavaScript脚本、字体等。 这些资源用于页面和小部件中,或者在微流中调用外部API时使用。 示例目录结构:
markdown 复制代码 resources/ images/ logo.png css/ customStyles.css js/ customScript.js 7. security.xml 如果模块包含自定义的安全设置(例如角色和权限),那么相关配置会存储在security.xml文件中。这里定义了哪些角色可以访问哪些页面、微流、数据实体等。 8. 其他文件 mpk文件中可能还包含其他用于配置和支持模块的文件,如日志配置、外部服务定义等。 mpk文件的使用流程 导出模块为mpk文件:
在Mendix Studio Pro中,当你完成模块的开发后,你可以通过右键点击模块名,选择 Export Module(导出模块)将其打包成.mpk文件。 导出的mpk文件将包含模块的所有内容,包括领域模型、页面、微流、资源等。 导入模块:
你可以在另一个Mendix项目中导入mpk文件。右键点击 Modules 文件夹,选择 Import Module Package,然后选择要导入的.mpk文件。 导入后,模块中的所有内容将出现在目标项目的 Modules 文件夹中。 版本控制:
mpk文件通常是模块的一个特定版本。如果你更新了模块并需要将其重新打包,你可以通过导出新的mpk文件来发布模块的新版本。 总结 Mendix的mpk文件是一个包含模块所有组件的压缩包,通常包括以下内容:
manifest.xml:模块的元数据,描述了模块的基本信息。 domainmodel.xml:模块的领域模型,定义数据实体和关系。 microflows/:模块中的微流文件,定义业务逻辑。 pages/:模块中的页面文件,定义用户界面。 widgets/:模块中的自定义小部件(如果有)。 resources/:模块使用的资源文件(如图片、样式表、脚本等)。 security.xml:模块的安全设置(如果有)。 这种结构使得Mendix应用可以非常方便地将模块封装为mpk文件,导入到其他项目中,从而实现模块的重用和分发。