类似于confluence_玩转Confluence插件开发开发插件涉及到的常用命令(12)

上一节介绍通过插件编写以数据填充的方式创建蓝图模板。这一节我来为您介绍日常开发插件需要接触到的一些命令。

在本教程中,我会创建一个用来测试相关命令的插件项目。这篇文件中出现的代码我已经放到github[1]中,地址在文章的最下方,如果需要可以自行获取。

1.创建插件框架

  1. 打开终端并导航到之前创建好的工作目录confluence-plugin-tutorial
  2. 运行以下命令创建Confluence插件框架。
atlas-create-confluence-plugin
  1. 根据提示输入对应的groupId、artifactId、version和package信息,并输入Y以确认。
Define value for groupId: : com.jenseny.confluence.tutorial
Define value for artifactId: : atlas-cli
Define value for version:  1.0.0-SNAPSHOT: : 
Define value for package:  com.jenseny.confluence.tutorial: : 
Confirm properties configuration:
groupId: com.jenseny.confluence.tutorial
artifactId: atlas-cli
version: 1.0.0-SNAPSHOT
package: com.jenseny.confluence.tutorial
 Y: : y
  1. 把项目导入到IDE中,我这边使用idea

2.atlas-create-confluence-plugin命令

atlas-create-confluence-plugin [options]用于创建Confluence插件框架。参数有:artifact-id,group-id,version,package,non-interactive。它会根据我们填写的参数生成一个插件项目,如果在使用命令的时候不填写参数,之后会有交互模式提示我们输入对应的参数。当然我们也可以在使用命令的时候直接填写好参数。

完整参数缩写描述
--artifact-id-a项目名称。它对应于Maven artifactId。如果不输入此值,脚本将提示您输入该值。
--group-id-g对应于Maven groupId。如果不输入此值,脚本将提示您输入该值。
--version-v插件版本。默认值为1.0-SNAPSHOT。如果不输入此值,脚本将提示您输入该值。
--package-p插件源代码的Java软件包的名称。默认值为之前设置的group-id
--non-interactive如果存在此参数(该参数没有值),则交互模式将关闭,因此脚本不会提示用户输入。在这种情况下,如果不提供artifact-idgroup-id脚本将失败。

3.atlas-run命令

atlas-run [options]运行一个安装了该插件的Confluence。参数有:version,container, http-port,ajp-port,context-path,server,jvmargs,log4j,test-version,sal-version,rest-version,plugins,lib-plugins,bundled-plugins,product。我们找几个常用的参数来介绍下它的作用。

完整参数缩写描述
-version-v指定要运行的Confluence版本。默认为RELEASE
--container-c要运行的容器。当前默认为tomcat9x。其他可用值是tomcat5xresin3xjboss42x
--http-port-pServlet容器的HTTP端口。默认值1990。当您要启动两个Confluence实例时,可以通过该参数设置不同的端口
--ajp-port-ajpServlet容器的AJP端口。当您要启动两个Confluence实例时,可以通过该参数设置不同的端口
--context-path应用程序上下文路径。需要包括前导斜杠。例如,如果您的应用程序在http://localhost:1990/confluence上运行则应输入/confluence。要在http://localhost:1990中运行则应输入ROOT
--server应用程序服务器的主机名。默认值为localhost
--jvmargs添加一些JVM参数

4.atlas-create-confluence-plugin-module命令

atlas-create-confluence-plugin-module命令提示您选择需要的插件模块类型,然后创建一个Confluence插件模块示例,您可以对其进行调整以适应自己的插件需求。目前支持的模块类型如下。

Choose Plugin Module:
1:  Blueprint
2:  Component Import
3:  Component
4:  Keyboard Shortcut
5:  Downloadable Plugin Resource
6:  Gadget Plugin Module
7:  Licensing API Support
8:  Module Type
9:  REST Plugin Module
10: Servlet Context Listener
11: Servlet Context Parameter
12: Servlet Filter
13: Servlet
14: Template Context Item
15: Web Item
16: Web Panel
17: Web Panel Renderer
18: Web Resource
19: Web Resource Transformer
20: Web Section
Choose a number (1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20):

5.其它命令

  1. atlas-clean

从插件项目中移除生成的文件,类似于Mavenmvn clean命令。

  1. atlas-compile

编译插件项目源码。类似于Mavenmvn compile命令。

  1. atlas-package

打包插件项目件并生成插件包(jarobr)。类似于Mavenmvn package命令。

  1. atlas-mvn

允许您使用与Atlassian Plugin SDK捆绑在一起的Maven版本的任何Maven命令。例如atlas-mvn clean package

  1. atlas-run-standalone

独立运行应用程序,不需要依赖插件项目。

假设您想快速启动Confluence实例,而无需事先创建Confluence插件项目。直接在命令行中键入以下命令即可:

atlas-run-standalone --product confluence

6.使用QuickReload自动重新安装插件

QuickReloadAtlassian插件,可显着减少插件开发的迭代时间。

  1. 通过atlas-create-confluence-plugin命令创建的项目默认已经开启了QuickReload。我们可以看到pom.xml插件部分true
com.atlassian.maven.pluginsconfluence-maven-plugin${amps.version}true${confluence.version}${confluence.data.version}true
  1. 当我们使用atlas-run运行Confluence之后,如果对插件进行了代码改动,可以新建一个控制台,切换到插件的工作空间执行atlas-mvn package命令,它将会帮我们自动重新安装修改后的插件。
  2. 切换回第一个控制台,如果看到类似日志代表插件已经重新安装。
[INFO] [talledLocalContainer] Starting Quick Reload - '/Users/wanglongchao/workspace/code/backend/github/confluence-plugin-tutorial/atlas-cli/target/atlas-cli-1.0.0-SNAPSHOT.jar'....
[INFO] [talledLocalContainer] 
[INFO] [talledLocalContainer] 
[INFO] [talledLocalContainer] 2020-08-23 21:51:35,497 INFO [QuickReload - Plugin Installer] [atlassian.plugin.manager.DefaultPluginManager] disablePlugins Found dependent enabled plugins for plugins '[com.jenseny.confluence.tutorial.atlas-cli]': [com.jenseny.confluence.tutorial.atlas-cli-tests(MANDATORY)].  Disabling...
[INFO] [talledLocalContainer] 2020-08-23 21:51:35,498 INFO [QuickReload - Plugin Installer] [atlassian.plugin.manager.DefaultPluginManager] broadcastPluginDisabling Disabling com.jenseny.confluence.tutorial.atlas-cli-tests
[INFO] [talledLocalContainer] 2020-08-23 21:51:35,598 INFO [QuickReload - Plugin Installer] [atlassian.plugin.manager.DefaultPluginManager] addPlugins Found mandatory, optional and dynamically dependent plugins to re-enable after plugin upgrade 'com.jenseny.confluence.tutorial.atlas-cli': [com.jenseny.confluence.tutorial.atlas-cli-tests].  Enabling...
[INFO] [talledLocalContainer] 2020-08-23 21:51:36,340 INFO [QuickReload - Stable File Watcher] [plugins.quickreload.install.PluginInstaller] info 'atlas-cli-1.0.0-SNAPSHOT-tests.jar' now appears to be stable (1611247 bytes)
[INFO] [talledLocalContainer] 2020-08-23 21:51:36,340 INFO [QuickReload - Stable File Watcher] [plugins.quickreload.install.PluginInstaller] info 'atlas-cli-1.0.0-SNAPSHOT-tests.jar' is indeed an Atlassian plugin and will be installed shortly...
[INFO] [talledLocalContainer] 2020-08-23 21:51:36,343 INFO [QuickReload - Plugin Installer] [atlassian.plugin.manager.DefaultPluginManager] updatePlugin Updating plugin 'com.jenseny.confluence.tutorial.atlas-cli' from version '1.0.0-SNAPSHOT' to version '1.0.0-SNAPSHOT'
[INFO] [talledLocalContainer] 2020-08-23 21:51:36,344 INFO [QuickReload - Plugin Installer] [atlassian.plugin.manager.DefaultPluginManager] broadcastPluginDisabling Disabling com.jenseny.confluence.tutorial.atlas-cli
[INFO] [talledLocalContainer] 2020-08-23 21:51:36,357 WARN [Gemini Blueprint context shutdown thread 1] [confluence.tutorial.atlas-cli.spring] destroy 
[INFO] [talledLocalContainer] 
[INFO] [talledLocalContainer]   Spring context destroyed : com.jenseny.confluence.tutorial.atlas-cli id(288) v(1.0.0.SNAPSHOT) 
[INFO] [talledLocalContainer] 
[INFO] [talledLocalContainer] 2020-08-23 21:51:36,469 WARN [ThreadPoolAsyncTaskExecutor::Thread 25] [confluence.tutorial.atlas-cli.spring] afterPropertiesSet 
[INFO] [talledLocalContainer] Spring context started for bundle : com.jenseny.confluence.tutorial.atlas-cli id(295) v(1.0.0.SNAPSHOT) file:/Users/wanglongchao/workspace/code/backend/github/confluence-plugin-tutorial/atlas-cli/target/confluence/home/plugins-cache/1598190695440atlas-cli-1.0.0-SNAPSHOT.jar
[INFO] [talledLocalContainer] 
[INFO] [talledLocalContainer] If you want to debug the Spring wiring of your code then set a DEBUG level log level as follows.  [ This is a dev.mode only message. ]
[INFO] [talledLocalContainer]   log4j.logger.com.jenseny.confluence.tutorial.atlas-cli.spring  = DEBUG, console, filelog
[INFO] [talledLocalContainer] 
[INFO] [talledLocalContainer] 2020-08-23 21:51:38,128 INFO [QuickReload - Plugin Installer] [plugins.quickreload.install.PluginInstallerMechanic] installPluginImmediately 
[INFO] [talledLocalContainer]                                           ^
[INFO] [talledLocalContainer]                                           |
[INFO] [talledLocalContainer]                                           |
[INFO] [talledLocalContainer]                                           |
[INFO] [talledLocalContainer]                                           |
[INFO] [talledLocalContainer]                                           |
[INFO] [talledLocalContainer] 
[INFO] [talledLocalContainer]           If Maven was a horse, you would shoot it, make it into dog food, feed it to a dog, and then shoot that just to be certain!
[INFO] [talledLocalContainer] 
[INFO] [talledLocalContainer] Quick Reload Finished (2131 ms) - 'atlas-cli-1.0.0-SNAPSHOT.jar'
以上就是关于日常开发 Confluence插件需要用到的一些命令,它们可以提高我们开发插件的效率。下一章我来为你介绍通过开发插件将页面的一些信息(点赞数,评论数和页面当前版本号)添加到页面横幅中。

参考资料

[1]

Confluence插件代码仓库: https://github.com/jenseny/confluence-plugin-tutorial.git

da22b519e32c4b1f2435522e860647de.gif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值