美文网首页CI-Jenkins
Jinkens plugin(builder type) dev

Jinkens plugin(builder type) dev

作者: 偏分武士 | 来源:发表于2019-08-20 10:55 被阅读0次

    Hello world项目文件和结构简单说明

    1. pom.xml文件

    maven项目的配置文件,定义项目属性和依赖关系
    可以修改以下几个项目,其他无需修改

    • <artifactId>helloworld</artifactId>
      插件id
    • <version>1.0-SNAPSHOT</version>
      插件版本
      <name>TODO Plugin</name>
      插件名

    2. 项目主要目录和文件

    image.png

    其中_de _es等文件是多语言本地化文件,为避免干扰可以全部删除只保留一个
    删除后的视图如下


    image.png
    • HelloWorldBuilder/config.jelly 网页配置文件
      jelly是扩展的xml,可以访问本地化变量
      例如title="${%Name}访问了config.properties文件中的Name
      field="name"访问了HelloWorldBuild.java文件中HelloWorldBuilder类的private final String name;变量
    • HelloWorldBuild.java 数据存取和逻辑处理文件
      其中有@DataBoundConstructor标签的是数据存储接口,在插件UI上填写数据后点击保存,将访问对应的数据存储接口
      例如,在网页上勾选Use French的Check Box之后点击保存,将会访问下面的方法。
    @DataBoundSetter
        public void setUseFrench(boolean useFrench) {
            this.useFrench = useFrench;
        }
    

    存储器命名规则为: set + 变量名(首字母大写)
    对应的数据读取函数命名规则为get + 变量名(首字母大写)
    例如,配置网页上的name字段并保存,刷新页面将会调用下面的方法获取name值用来显示。

    public String getName() {
            return name;
        }
    

    3. config.properties

    config.jelly中使用的本地化变量定义在这里
    例如title="${%Name}的Name变量

    4. Message.properties

    这里定义的变量会自动生成到target目录下的Message.java
    以便java文件调用


    image.png

    例如HelloWorldBuilder.java中的错误提示Messages.HelloWorldBuilder_DescriptorImpl_errors_missingName()

    1. HelloWorldBuilder/help-name.html
      网页上name字段的帮助文档,命名规则为help-变量名.html

    2. work/jobs/test/config.xml
      插件数据持久化文件,插件上的数据填写并保存后会存储在这里
      例子

    <?xml version='1.1' encoding='UTF-8'?>
    <project>
      <actions/>
      <description></description>
      <keepDependencies>false</keepDependencies>
      <properties/>
      <scm class="hudson.scm.NullSCM"/>
      <canRoam>true</canRoam>
      <disabled>false</disabled>
      <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
      <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
      <triggers/>
      <concurrentBuild>false</concurrentBuild>
      <builders>
        <io.jenkins.plugins.apkpacker.ApkPacker plugin="apk-packer@1.0.1">
          <pluginOn>true</pluginOn>
          <keystore>2</keystore>
          <appid>1</appid>
          <userid>3</userid>
          <channelConfigs>
            <io.jenkins.plugins.apkpacker.ChannelConfig>
              <isOn>true</isOn>
              <name>4</name>
              <platformConfigs>
                <io.jenkins.plugins.apkpacker.PlatformConfig>
                  <name>5</name>
                  <versionNo>6</versionNo>
                </io.jenkins.plugins.apkpacker.PlatformConfig>
              </platformConfigs>
              <pluginConfigs>
                <io.jenkins.plugins.apkpacker.PluginConfig>
                  <name>7</name>
                  <versionNo>8</versionNo>
                </io.jenkins.plugins.apkpacker.PluginConfig>
              </pluginConfigs>
            </io.jenkins.plugins.apkpacker.ChannelConfig>
          </channelConfigs>
        </io.jenkins.plugins.apkpacker.ApkPacker>
      </builders>
      <publishers/>
      <buildWrappers/>
    </project>
    
    1. work/workspace目录
      windows上开发时的Jenkins工作目录。

    相关文章

      网友评论

        本文标题:Jinkens plugin(builder type) dev

        本文链接:https://www.haomeiwen.com/subject/hpsusctx.html