hetero-radio 不可见,jenkins 插件
hetero-radio is not visible, jenkins plugin
我在玩 jenkins hello world plugin 并尝试使用 hetero-radio 而不是文本对其进行自定义,但是我的 ui 不可见。我是果冻和詹金斯的新手。有人可以帮我解决这个问题吗?我正在尝试创建以红色突出显示的类似内容
我的程序
Demo1.java
private final HeteroRadioEntry projectVersion;
public HeteroRadioEntry getProjectVersion() { return projectVersion; }
@Override
public void perform(@Nonnull Run<?, ?> run, @Nonnull FilePath filePath, @Nonnull Launcher launcher, @Nonnull TaskListener taskListener) throws InterruptedException, IOException { }
public static abstract class Entry extends AbstractDescribableImpl<Entry> {}
public static final class SimpleEntry extends Entry {
private final String text;
@DataBoundConstructor public SimpleEntry(String text) { this.text = text; }
public String getText() { return text; }
@Extension public static class DescriptorImpl extends Descriptor<Entry> {
@Override public String getDisplayName() { return "Simple Entry"; }
}
}
public static final class AutoEntry extends Entry {
private final String text;
@DataBoundConstructor public AutoEntry() { this.text = "Some fixed string"; }
public String getText() { return text; }
@Extension public static class DescriptorImpl extends Descriptor<Entry> {
@Override public String getDisplayName() { return "Auto Entry"; }
}
}
public static final class HeteroRadioEntry extends Entry {
private final Entry entry;
@DataBoundConstructor public HeteroRadioEntry(Entry entry) { this.entry = entry; }
public Entry getEntry() { return entry; }
@Extension public static class DescriptorImpl extends Descriptor<Entry> {
@Override public String getDisplayName() { return "Hetero-Radio"; }
public List<Descriptor> getEntryDescriptors() {
Jenkins jenkins = Jenkins.getInstance();
return ImmutableList.of(jenkins.getDescriptor(AutoEntry.class), jenkins.getDescriptor(SimpleEntry.class));
}
}
}
@DataBoundConstructor public Demo1(HeteroRadioEntry projectVersion) { this.projectVersion=projectVersion; }
@Symbol("greet")
@Extension
public static final class DescriptorImpl extends BuildStepDescriptor<Builder> {
@Override public boolean isApplicable(Class<? extends AbstractProject> aClass) { return true; }
@Override public String getDisplayName() { return "Demo1"; }
}
}
果冻程序Demo1/config.jelly
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<f:entry field="projectVersion"></f:entry>
</j:jelly>
Demo1/HeteroListEntry/config.果冻
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
<f:entry title="Hetero-Choice">
<f:hetero-radio field="entry" descriptors="${descriptor.entryDescriptors}" />
</f:entry>
</j:jelly>
Demo1/AutoEntry/config.果冻
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
<f:label field="text" />
</j:jelly>
Demo1/SimpleEntry/config.果冻
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
<f:entry field="text">
<f:textbox/>
</f:entry>
</j:jelly>
经过大量努力,我通过参考 link 获得了结果,虽然不是令人满意。它解释了 hetero-radio/hetero-list 的功能。我把嵌套的static 类移到外面
我在玩 jenkins hello world plugin 并尝试使用 hetero-radio 而不是文本对其进行自定义,但是我的 ui 不可见。我是果冻和詹金斯的新手。有人可以帮我解决这个问题吗?我正在尝试创建以红色突出显示的类似内容
我的程序 Demo1.java
private final HeteroRadioEntry projectVersion;
public HeteroRadioEntry getProjectVersion() { return projectVersion; }
@Override
public void perform(@Nonnull Run<?, ?> run, @Nonnull FilePath filePath, @Nonnull Launcher launcher, @Nonnull TaskListener taskListener) throws InterruptedException, IOException { }
public static abstract class Entry extends AbstractDescribableImpl<Entry> {}
public static final class SimpleEntry extends Entry {
private final String text;
@DataBoundConstructor public SimpleEntry(String text) { this.text = text; }
public String getText() { return text; }
@Extension public static class DescriptorImpl extends Descriptor<Entry> {
@Override public String getDisplayName() { return "Simple Entry"; }
}
}
public static final class AutoEntry extends Entry {
private final String text;
@DataBoundConstructor public AutoEntry() { this.text = "Some fixed string"; }
public String getText() { return text; }
@Extension public static class DescriptorImpl extends Descriptor<Entry> {
@Override public String getDisplayName() { return "Auto Entry"; }
}
}
public static final class HeteroRadioEntry extends Entry {
private final Entry entry;
@DataBoundConstructor public HeteroRadioEntry(Entry entry) { this.entry = entry; }
public Entry getEntry() { return entry; }
@Extension public static class DescriptorImpl extends Descriptor<Entry> {
@Override public String getDisplayName() { return "Hetero-Radio"; }
public List<Descriptor> getEntryDescriptors() {
Jenkins jenkins = Jenkins.getInstance();
return ImmutableList.of(jenkins.getDescriptor(AutoEntry.class), jenkins.getDescriptor(SimpleEntry.class));
}
}
}
@DataBoundConstructor public Demo1(HeteroRadioEntry projectVersion) { this.projectVersion=projectVersion; }
@Symbol("greet")
@Extension
public static final class DescriptorImpl extends BuildStepDescriptor<Builder> {
@Override public boolean isApplicable(Class<? extends AbstractProject> aClass) { return true; }
@Override public String getDisplayName() { return "Demo1"; }
}
}
果冻程序Demo1/config.jelly
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<f:entry field="projectVersion"></f:entry>
</j:jelly>
Demo1/HeteroListEntry/config.果冻
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
<f:entry title="Hetero-Choice">
<f:hetero-radio field="entry" descriptors="${descriptor.entryDescriptors}" />
</f:entry>
</j:jelly>
Demo1/AutoEntry/config.果冻
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
<f:label field="text" />
</j:jelly>
Demo1/SimpleEntry/config.果冻
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
<f:entry field="text">
<f:textbox/>
</f:entry>
</j:jelly>
经过大量努力,我通过参考 link 获得了结果,虽然不是令人满意。它解释了 hetero-radio/hetero-list 的功能。我把嵌套的static 类移到外面