文章目录
  1. 1. HelloWorld宏开发
    1. 1.1. 步骤一,用Idea打开工程
    2. 1.2. 步骤二,修改配置文件
    3. 1.3. 步骤三,插入Java代码
    4. 1.4. 步骤四,编译及效果查看
  2. 2. 参考资料

经过前面的两篇文单的介绍,我们已经完成了开发环境的准备和基本工程的创建。在这个基础上我们来写一个HelloWorld 宏。

HelloWorld宏开发

步骤一,用Idea打开工程

使用Idea的时候有一个注意事项,就是要修改maven的 setting.xml文件。因为confluence使用的自己的服务器maven.atlassian.com来下载maven依赖。

  1. 点击Idea左上角的File菜单
  2. 打开Settings…
  3. 找到 Build, Execution, Deployment, 点开 Build Tools, 选择 Maven
  4. 修改 User settings file的配置,点击右边的 override, 就可以写入值了。 可以通过 atlas-version命令来查看SDK的安装目录,我们使用SDK目录下的 apache-maven-3.5.4\conf\setting.xml 配置文件
  5. 在Idea里更新maven的配置,查看是否maven依赖都能正常加载。第一次加载maven依赖的时候会比较耗时间。

步骤二,修改配置文件

  1. 打开 src\main\resources\atlassian-plugin.xml 文件

  2. 在 后面加入,以下代码:

    1
    2
    3
    4
    5
    <xhtml-macro name="helloworld" class="com.example.Helloworld" key='helloworld-macro'>
    <description key="helloworld.macro.desc"/>
    <category name="formatting"/>
    <parameters/>
    </xhtml-macro>
    • 注意,xhtml-macro 和 web-resource 是同级节点。
  3. 打开 src\main\resources\myConfluenceMacro.properties 文件,加入helloworld.macro.desc 配置项

    1
    helloworld.macro.desc=Hello World

步骤三,插入Java代码

  1. 创建Helloworld类,写入以下代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    package com.example;
    import com.atlassian.confluence.content.render.xhtml.ConversionContext;
    import com.atlassian.confluence.macro.Macro;
    import com.atlassian.confluence.macro.MacroExecutionException;
    import java.util.Map;
    public class Helloworld implements Macro {
    @Override
    public String execute(Map<String, String> map, String s, ConversionContext conversionContext)
    throws MacroExecutionException {
    return "<h1>Hello World</h1>";
    }
    @Override
    public BodyType getBodyType() {
    return BodyType.NONE;
    }
    @Override
    public OutputType getOutputType() {
    return OutputType.BLOCK;
    }
    }

步骤四,编译及效果查看

  1. 在命令行里运行 atlas-mvn package 命令,重新打包

    1
    atlas-mvn package
  2. 打包成功后,会输出类似以下的信息:

    1
    2
    3
    4
    5
    6
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 11.916 s
    [INFO] Finished at: 2021-03-01T18:20:54+08:00
    [INFO] ------------------------------------------------------------------------
  3. 切换到原来运行atlas-run的命令行窗口,你可以看到 类似以下的日志输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
[INFO] [talledLocalContainer] 2021-03-01 18:21:00,379 INFO [QuickReload - Plugin Installer] [atlassian.plugin.manager.DefaultPluginManager] updatePlugin Updating plugin 'com.example.myConfluenceMacro-tests' from version '1.0.0-SNAPSHOT' to version '1.0.0-SNAPSHOT'
[INFO] [talledLocalContainer] 2021-03-01 18:21:00,379 INFO [QuickReload - Plugin Installer] [atlassian.plugin.manager.DefaultPluginManager] broadcastPluginDisabling Disabling com.example.myConfluenceMacro-tests
[INFO] [talledLocalContainer] 2021-03-01 18:21:01,629 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 you can type on a Dvorak keyboard can you automatically speak Esperanto and program in Lisp?
[INFO] [talledLocalContainer]
[INFO] [talledLocalContainer] Quick Reload Finished (2979 ms) - 'myConfluenceMacro-1.0.0-SNAPSHOT-tests.jar'
  1. 在浏览器里创建一个页面,插入一个宏,在选择宏的弹窗里,你就可以看到 Helloworld这个宏了。 选择宏图示
  2. 插入Helloworld宏后,发布,就可以看到发布后的效果 Helloworld宏图示

参考资料

https://developer.atlassian.com/server/framework/atlassian-sdk/create-a-confluence-hello-world-macro/

文章目录
  1. 1. HelloWorld宏开发
    1. 1.1. 步骤一,用Idea打开工程
    2. 1.2. 步骤二,修改配置文件
    3. 1.3. 步骤三,插入Java代码
    4. 1.4. 步骤四,编译及效果查看
  2. 2. 参考资料