Jenkinsプラグイン開発ノウハウ1 - 環境構築

## Jenkinsプラグイン開発ノウハウシリーズ
1. [Jenkinsプラグイン開発ノウハウ1 - 環境構築](http://qiita.com/sona-tar/items/e6d7ebb5470236a0cc50)
2. [Jenkinsプラグイン開発ノウハウ2 - 開発とテスト](http://qiita.com/sona-tar/items/933e55594bfed757fe8d)
3. [Jenkinsプラグイン開発ノウハウ3 - リリース](http://qiita.com/sona-tar/items/45eae75eb5f91f4ebf55)


## 背景
[JobDelete-Builder-Plugin](http://qiita.com/sona-tar/items/ca8eb5b7874fcbc6650f)というJenkinsプラグインを開発したため、その時の開発開始からリリースまでの一連のフローを記録として残しておきたいと思います。

## 環境
OSX Yosemite 10.10.5
![OSXVersion.png](https://qiita-image-store.s3.amazonaws.com/0/54186/e74382e5-a47f-9a80-6ffd-032252787c67.png)


## 1. 実行環境の構築
### 1.1. Homebrewのインストール
以降で利用するツールをインストールするためのHomebrewをインストールします。

[Homebrew公式サイト](http://brew.sh/index_ja.html)

```zsh
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```

### 1.2. Java 8系, Maven 3系のインストール

JenkinsはJavaで開発されており、Mavenで管理されています。

```zsh
brew install java maven
```

### 1.3. Mavenの設定

```xml:~/.m2/settings.xml
<settings>
  <pluginGroups>
    <pluginGroup>org.jenkins-ci.tools</pluginGroup>
  </pluginGroups>

  <profiles>
    <!-- Give access to Jenkins plugins -->
    <profile>
      <id>jenkins</id>
      <activation>
        <activeByDefault>true</activeByDefault> <!-- change this to false, if you don't like to have it on per default -->
      </activation>
      <repositories>
        <repository>
          <id>repo.jenkins-ci.org</id>
          <url>http://repo.jenkins-ci.org/public/</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>repo.jenkins-ci.org</id>
          <url>http://repo.jenkins-ci.org/public/</url>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
</settings>
```

## 2. サンプルプラグイン
今回は標準で用意されているサンプルプラグインではなく、別途私が日本語やJUnit4環境を整備したものを利用します。標準のサンプルプラグイン+αで減っているものはないので安心してご利用ください。
このサンプルプラグインでは、***ジョブを作成する***というプラグインです。Jenkinsで元々できることなので有用性はありませんが、Hello Worldよりかは実践的な内容になっています。

まずは[jobcreate-builder-plugin -Github](https://github.com/sona-tar/jobcreate-builder-plugin)をcloneして`mvn package`でビルドしましょう。forkしてからcloneしても構いません。

### 2.1. サンプルプラグインを取得してビルド
```zsh
$ git clone https://github.com/sona-tar/jobcreate-builder-plugin.git
$ cd  jobcreate-builder-plugin
$ mvn package
```

### 2.2. サンプルプログラムの動作確認

```zsh
$ mvn package
```

#### 1. 実行
```zsh
mvn hpi:run -Djetty.port=8090
```

#### 2. JobCreate-Builderのプロジェクトを作成
http://localhost:8090/jenkins/ にアクセスして、**新規ジョブ作成**をクリックし、ジョブ名を**create-job**として、**フリースタイルプロジェクトのビルド**を選択して**OK**をクリックしてください。

#### 3. ビルドの設定
**ビルド手順の追加**からジョブを作成を選択します。ジョブ名に**job01**と入力して**保存**をクリックしてください。
以上で、**job01**を作成するJenkinsのプロジェクトが完成しました。

#### 4. ジョブの実行してjob01を作成
**create-job**を実行してみてください。**job01**が作成されます。

以上でサンプルプラグインの動作確認は完了です。



## 3. 開発環境の構築
今回はIntelliJ IDEA Community Editionを前提に進めていきますが、ソースコードの変更以外はコマンドで説明していくため開発環境は`vim`や`Emacs`などIDE以外のものでも問題ありません。

### 3.1. IDEのインストール
まずはGUIツールをHomebrewからインストールできるようになるbrew-caskもインストールします。

```zsh
brew install brew-cask
```

続いてIntelliJ IDEA CEをインストール。

```zsh
brew cask install intellij-idea-ce
```

### 3.2. プロジェクトの作成
IntelliJ IDEA CEを起動します。
**Import Project**を選択します。先ほどcloneした`jobcreate-builder-plugin`ディレクトリにある`pom.xml`を選択します。基本的には**Next**をクリックすれば良いですが、**Please select project SDK**の場面ではインストールしたJDKを選択します。以下のようなパスにインストールされているはずです。バージョンのところは環境に合わせて指定してください。``/Library/Java/JavaVirtualMachines/jdk1.X.X_X.jdk/Contents/Home/``

以上で、補完などが効くようにになり開発効率的に進められるようになります。

![intellijidea01.png](https://qiita-image-store.s3.amazonaws.com/0/54186/f072c539-3cac-0b39-888a-b2429d981e77.png)


## まとめ
以上で、開発するための準備は整いました。

続きは[Jenkinsプラグイン開発ノウハウ2 - 開発とテスト](http://qiita.com/sona-tar/items/933e55594bfed757fe8d)です。