我正在尝试使用 Free Marker 创建一个带有域和数据模块的 Android Studio 自定义项目模板。但是我无法在创建新项目时创建新模块。请帮我解决这个问题。
编辑: 我使用了这篇博客来创建自定义模板 https://robusttechhouse.com/tutorial-how-to-create-custom-android-code-templates/ 但它只会生成一个 app 模块。
我正在尝试使用 Free Marker 创建一个带有域和数据模块的 Android Studio 自定义项目模板。但是我无法在创建新项目时创建新模块。请帮我解决这个问题。
编辑: 我使用了这篇博客来创建自定义模板 https://robusttechhouse.com/tutorial-how-to-create-custom-android-code-templates/ 但它只会生成一个 app 模块。
第一种方法:创建一个包含两个模块的模板应用程序项目。
这是最简单的方法。
您可以创建此项目作为其他项目的基础。
您可以将其置于版本控制下,并重新使用特定版本。
从Android Studio中,您可以使用以下方式导入:
文件-> 新建-> 导入项目...
文件-> 新建-> 从版本控制创建项目
第二种方法:修改NewAndroidProject模板和/或要使用的模块的模板。
导航到以下路径:
<your_androidstudio_installation_directory>/plugins/android/lib/templates/gradle-projects/NewAndroidProject
这是用于大多数(或所有)Android项目的模板。
相反,这是用于应用程序中使用的每个模块的模板,例如“app”模块,库模块和其他少数模块。
您可以自定义其中的文件,但它将影响您在Android Studio中创建的所有项目。
<your_androidstudio_installation_directory>/plugins/android/lib/templates/gradle-projects/NewAndroidModule
修改这两个模板可能会或可能不会解决您的问题,我不会深入描述如何做到这一点, 因为您可能希望保持创建新项目的标准方式不变。
当然,这第二种方法并没有回答您的问题,这就是为什么我向您介绍第三种方法。
第三种方法:为Android Studio构建自己的插件 添加自己的项目模板到Android Studio很困难的原因在于,直到现在,Android Studio被编程(和硬编码) 从特定目录中选择项目模板文件,并使用FreeMarker模板引擎处理它们,最后处理 Gradle导入器以获得从头开始创建新项目时显示给您的状态。
为了观察此行为,请尝试更改 /plugins/android/lib/templates/gradle-projects/NewAndroidModule/root/build.gradle.ftl 文件, 即使只是添加注释,重新启动Android Studio并启动新项目。 您将注意到您的更改在新项目的根目录中的build.gradle文件中。
目前,Android Studio是硬编码的,以使用该特定模板,这是您无法更改其行为的原因, 除非更改模板或为Anroid Studio构建自己的插件。
通过开发自己的AS插件,您将能够重用AS用于从头开始创建新项目的特定组件和向导。 在您的情况下,您将不得不创建一个实现更多步骤的新向导, 而不影响最后一个向导的好处。
您可以通过下载源代码并查看以下文件来开始:
ModelWizard
ModelWizardStep
ActivityGalleryStep
AndroidNewProjectAction
但是,在您开始之前,让我告诉您,除非您在团队中工作,否则 创建解决您问题的插件将是一项巨大的工作。 Android Studio / IntelliJ IDEA CE是一个生态系统。仅掌握插件开发的基础可能需要您几周时间,因此这取决于您。了解如何开发插件并学习此IDE的工作方式是一个很好的见解,因为一旦您了解各个部分的连接方式,就可以更多地自动化您的工作流程,但在这种情况下,我建议使用第一种方法,因为它简单而有效。
如果您在一个中大型团队中工作,则开发插件。(第三种方法)
编辑:插件的第三种方法实现(开始插件开发):
IntelliJ平台SDK文档: http://www.jetbrains.org/intellij/sdk/docs/index.html
这是我与同事一起进行的Droidcon Italy 2017演讲的示例代码的github存储库: https://github.com/synesthesia-it/droidcon_as_plugin
这是一个基本示例,您可以下载、编译、安装和实验。它做了一些简单的事情来演示基本概念。
有一些关于这个主题的YouTube视频:
IntelliJ SDK文档非常好,但最好的文档来源是其他可下载插件的源代码。许多项目提供一个链接到存储库的链接,您可以从中下载代码并进行实验。
https://plugins.jetbrains.com/idea
@OMAK
现在让我告诉你,你可能无法在可用的文档或插件中找到你要寻找的内容。
我提供的内容主要针对IDEA IDE(Android Studio基于它),而要做你想做的事情的文档根本不存在。没有指南可以解释如何通过添加步骤或从非标准目录导入模板来修改Android Studio中的向导。
你正在处理的解决方案与我所在公司开发的解决方案非常相似。起步难度很大,但能够开发插件提供了自动化开发流程多个部分的无限可能性。
我可能会在不久的将来撰写一份简短的指南,以记录如何完成此任务。但目前最好通过观看YouTube上的教程自己开始学习。