jelly.config中的可选块不能转换为jenkins插件开发中的后端。

时间:2015-03-04 16:19:14

标签: java jenkins jenkins-plugins maven-jetty-plugin jelly

我的jelly.config包含以下内容:

        <f:block>
            <f:optionalBlock inline="true" name="dynamic" title="Mandatory parameter for rpm artifacts only" checked="false"
                help="/plugin/artifactory/help/common/help-artifactType.html">
                        <f:entry title="Operating System">
                                <select class="setting-input" name="operatingSystem">
                                        <option value="rhel5">rhel5</option>
                                        <option value="linux">linux</option>
                                </select>
                        </f:entry>
                        <f:entry title="Architecture">
                                <select class="setting-input" name="architecture">
                                        <option value="64">64</option>
                                        <option value="32">32</option>
                                </select>
                        </f:entry>
            </f:optionalBlock>
        </f:block>

在我的serverDetails.js中我有:

    public class ServerDetails {
    public final String operatingSystem;
        /**
         * This the type of operating system that your rpm builds on. If not specified, this passes null. 
         */
        public final String architecture;
        /**
         * This the type of architecture your rpm runs on. If not specified, this passes null. 
         */
    }

    public ServerDetails(String artifactoryName, String artifactoryUrl, String repositoryKey, String snapshotsRepositoryKey,
                             String downloadReleaseRepositoryKey, String downloadSnapshotRepositoryKey,
                             String downloadReleaseRepositoryDisplayName, String downloadSnapshotRepositoryDisplayName,
                             String userPluginKey, String userPluginParams,String artifactKey,String productKey, String operatingSystem, String architecture, String buildType) {
            this.operatingSystem = operatingSystem;
            this.architecture = architecture;
            this.buildType = buildType;
            createStagingPlugin();
        }

public ServerDetails(String artifactoryName, String artifactoryUrl, String repositoryKey, String snapshotsRepositoryKey,
                         String downloadReleaseRepositoryKey, String downloadSnapshotRepositoryKey,
                         String downloadReleaseRepositoryDisplayName, String downloadSnapshotRepositoryDisplayName) {
        this(artifactoryName, artifactoryUrl, repositoryKey, snapshotsRepositoryKey, downloadReleaseRepositoryKey,
                downloadSnapshotRepositoryKey, downloadReleaseRepositoryDisplayName, downloadSnapshotRepositoryDisplayName, null, null,null,null, null, null, null);
    }

在我的后端java中,我将其用作:

public String getOperatingSystem() {
        return details != null ? details.operatingSystem : null;
    }

    public String getArchitecture() {
        return details != null ? details.architecture : null;
    }

现在,当我在前面选择操作系统和体系结构后访问它时,当我打印出来时,我仍然会为它们获取空值。

我在这里遗漏了什么吗?为什么我没有得到这些价值观。

1 个答案:

答案 0 :(得分:1)

在您创建的作业中,XML有什么作用?您可以从URL localhost:8080 / job // config.xml

获取此信息

我猜您需要here

之类的doFillOperatingSystemItems来电

<强>未测试

public ListBoxModel doFillOperatingSystemItems(
    @QueryParameter String operatingSystem
) {
    return new ListBoxModel(
        new Option("rhel", "rhel", operatingSystem.matches("rhel") ),
        new Option("linux", "linux", operatingSystem.matches("linux") ) 
    );
}