# mvvmAsPlugin
**Repository Path**: seven-os/mvvm_as_plugin
## Basic Information
- **Project Name**: mvvmAsPlugin
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-08-16
- **Last Updated**: 2022-10-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### Android Studio 4.1中的模板插件基本说明
# 1.使用JetBrains IntelliJ 插件模板
打开 [intellij-platform-plugin-template](https://github.com/JetBrains/intellij-platform-plugin-template)
点击那个绿色按钮 Use this template 把这个项目copy到自己的Git下,然后下载下来进行相应的修改,如下图

# 2.修改相应位置
gradle.properties
//这个是插件的Group 和包名相同就行
pluginGroup = com.android.doubleseven
//这个是插件名字
pluginName = mvvm-helper-plugin
//这个是插件版本 随意改
pluginVersion = 0.0.3
//如果不想调试各种版本兼容的话可以把 build.gradle.kts里的intellij里的updateSinceUntilBuild设置为false
//这个是最小支持版本,就是Android Studio关于里的那个 #AI-201.8743.12. 这个AI后面的第一个数字 201
pluginSinceBuild = 201
//这个是最大支持版本,一般不用改
pluginUntilBuild = 203.*
//![版本来源说明]
//(https://plugins.jetbrains.com/docs/intellij/android-studio.html?from=jetbrains.org#matching-versions-of-the-intellij-platform-with-the-android-studio-version)
platformVersion = 201.8743.12
//是否下载ide源码
platformDownloadSources = true
//这个是平台插件复制过去就ok了
platformPlugins = java, com.intellij.java, org.jetbrains.android, android, org.jetbrains.kotlin
build.gradle.kts
dependencies {
detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:1.16.0")
//增加 wizard-template.jar 来源在 Android Studio\plugins\android\lib\wizard-template.jar
compileOnly(files("libs/wizard-template.jar"))
}
src\main\resources\META-INF\plugin.xml
//添加三个插件依赖
org.jetbrains.android
org.jetbrains.kotlin
com.intellij.modules.java
# 3.添加自己的模板代码
修改src->main->resources->META-INF->plugin
参考other里的代码
# 4.生成插件Jar
如下图,运行那个都行


tip:
- 入口必须为WizardTemplateProvider的派生类
- widgets里的widgets控件必须有default 属性,不然菜单里看不到模板
- wizard-template.jar这个jar和JetBrains里的wizardTemplate.plugin-xx.x.x.jar里面api可能有点不一样,已本地的为准
- 如果出现中文乱码在 build.gradle.kts tasks里的withType 加 options.encoding = "UTF-8"
---
---
- **自定义文件说明**
| 关键字 | 示例 | 说明 |
| --- | --- | --- |
| **{baseActivityPath}** |com.android.base.activity.BaseDataBindingActivity | 当前的BaseActivity地址 |
|**{activityPackageName}**| com.xxx.xxx.activity |当前创建的Activity的包名 |
| **{activityDataBindingPath}** | com.xxx.xxx.databinding.ActivityMainBinding | 当前的activityBinding地址 |
|**{baseFragmentPath}** | com.android.base.fragment.BaseDataBindFragment |BaseFragment地址|
|**{fragmentPackageName}**| com.xxx.xxx.fragment |当前创建的Fragment的包名 |
| **{fragmentDataBindingPath}** | com.xxx.xxx.databinding.FragmentMainBinding| 当前fragmentDatabinding
| **{viewModelPath}** | com.xxx.xxx.viewmodel.MainViewModel | 当前的viewModel地址 |
| **{appRPath}** |com.xxx.xxx.R | R文件的地址 |
|**{pageName}**| Main |当前面页面的名称 |
|**{layoutId}**| R.layout.activity_main or R.layout.fragment_test |当前layoutId地址 |