Jenkinsプラグイン

TopLevelItem?

ジョブ自体の定義のことである。これを新たに定義することによって、

ジョブの種類を増やすことができる。

定義したジョブは下図の赤枠に追加される。

topLevelItem.png

プロジェクトの種類を増やしたい場合、 hudson.model.TopLevelItem? インターフェースを実装したクラスを作成する。

加えて、ビルド可能なジョブにしたい場合には、hudson.model.Project を継承する。 その場合、Buildクラスを継承したクラスも用意する必要がある。

以下が、最低限必要な実装である。

public class SampleProject extends Project<SampleProject, SampleBuild>
		implements TopLevelItem {
	public SampleProject(ItemGroup parent, String name) {
		super(parent, name);
	}
	public TopLevelItemDescriptor getDescriptor() {
		return null;
	}
	@Override
	protected Class<SampleBuild> getBuildClass() {
		return SampleBuild.class;
	}
	@Extension(ordinal = 10)
	public static final DescriptorImpl DESCRIPTOR = new DescriptorImpl();
	public static final class DescriptorImpl extends AbstractProjectDescriptor {
		@Override
		public String getDisplayName() {
			return "サンプル";
		}
		@Override
		public TopLevelItem newInstance(ItemGroup arg0, String arg1) {
			return new SampleProject(arg0, arg1);
		}
	}
}

DescriptorImpl?とは、このクラスの基本的な設定情報みたいなものである。

DisplayName?が実際にメニューに表示される。

public class SampleBuild extends Build<SampleProject, SampleBuild> {
	protected SampleBuild(SampleProject project) throws IOException {
		super(project);
	}
}

ここまで実装して、mvn hpi:run すると 以下のように、プロジェクトの種類が増える。

topLevelItem2.png

ジョブの説明を追加する場合には、

リソースフォルダへ、jellyファイルを追加する。 ジョブのクラス完全修飾名のパッケージを指定する。

ファイル名は、 newJobDetail?.jelly である。

そこから参照するメッセージリソースは、 newJobDetail?.jelly_ja ファイルへ定義する。

newjobdetailpng.png

以下は、newJobDetail?.jellyのサンプル。

<?jelly escape-by-default='true'?>
<div>
     ${%body}
</div>

設定ページの編集

以下が、デフォルトの設定ページのレイアウトである。

defaultconfig.png

これは、SampleProject?の親クラスであるhudson.model.Projectの設定ページを そのまま継承したものである。

このレイアウトは、hudson.model.Projectに含まれる configure-entries.jelly に定義されているものなので、 今回作成したプロジェクトに、同じファイル名で新たにファイルを作成すれば、 レイアウトを上書きすることが出来る。

たとえば、以下のように空のconfigure-entries.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" xmlns:p="/lib/hudson/project">
</j:jelly>
blank.png

添付ファイル: fileblank.png 168件 [詳細] filedefaultconfig.png 194件 [詳細] filenewjobdetailpng.png 179件 [詳細] filetopLevelItem2.png 149件 [詳細] filetopLevelItem.png 169件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-10-05 (日) 21:57:23 (1163d)