Azure Pipeline で Maven のデプロイ承認

Azure Pipeline の承認 (approvals) 機能は、ステージ (stage) の開始前にしか使えないのと、 Apache Maven ではライフサイクル途中からの実行が原則としてできないことから、デプロイ処理だけ承認を必要とするパイプラインを構成するのがやや難しかったのですが、承認の有無でステージを分けて condition で選択する方法で実現してみました。

続きを読む →

OpenJ9 で NetBeans 起動を高速化

前回 NetBeans IDE 8.2 に OpenJ9 を利用してみましたが、更に OpenJ9 固有の -Xshareclasses オプションを使うことで起動の高速化を試みました。

Windows で OpenJ9 を試してみようか

方法は NetBeans IDE のショートカットをコピーして、実行コマンド (netbeans64.exe) に -J-Xshareclasses:name=netbeans_8_2 -J-Xscmx64m を追加するだけです。

これで二回目以降の起動は目に見えて速くなりましたね。IDE の再起動も気軽にできるようになりました。

Windows で OpenJ9 を試してみようか

Windows x64 バージョンの OpenJ9 を組み込んだ OpenJDK 8 がリリースされていたので、インストールしてみました。

インストールは zip ファイルをダウンロードしてばらすだけなのですが、古い OpenJDK の常で cacerts が空っぽなので、 OpenJDK 10 からコピーしておきました。

試しに NetBeans IDE 8.2 に使ってみると、気持ち起動が速いかなと感じましたね。しばらくこれで使ってみましょうか。サポートも 2022 年 9 月まで続けるようですし。

それでは。

NetBeans 9.0 を試してみました

Oracleから譲渡されて約2年、Apache財団が「NetBeans 9.0」を正式リリース – 窓の杜

とのことで、取り急ぎ試してみました。

まだ実行形式インストーラーが用意されていないので、インストールは zip ファイルをばらすだけでショートカットも何もありません。

現時点で対応しているのは Java SE プロジェクトのみなので、普段 Java EE を使っている当方では本格的な移行はまだ先になりそうです。プラグインが揃った頃にまたチャレンジしましょう。

Apache Maven で javadoc 出力を HTML5 にする ちょっとした設定

$HOME/.m2/settings.xml に次のプロファイルを追加:

<profile>
    <activation>
        <jdk>[9,)</jdk>
    </activation>
    <properties>
        <additionalJOption>-html5</additionalJOption>
    </properties>
    <id>java9</id>
</profile>

本来 additionalJOption-J… 形式のオプションを指定するものですが、それ以外も使えるということでこれを流用します。

Hudson と Mercurial を利用した Maven 成果物のリリース管理

たまには何か書かないと PV が増えないので、今回は HudsonMercurial を利用した Maven 成果物 (artifact) のリリース管理について書いてみたいと思います。

ご存じの方もいるかと思いますが、私は OSSRH を利用して Maven Central Respository に Java 系成果物を公開しています。一例としては Google Login Plugin for Hudson とかですね。

ところで、Maven にはバージョンの末尾に -SNAPSHOT が付くと、リリース前のスナップショットとして扱われるという慣例があります。例えばバージョン X.Y-SNAPSHOT はバージョン X.Y より前のスナップショットという意味になり、Maven のリポジトリーでも別枠となります。

さてここまでを前置きとして、今回紹介するのは Hudson と Mercurial を利用して、成果物のリリースを半自動化してしまう手法です。

Hudson の使い方については別途調べてもらうとして、Hudson を使うことで Maven 成果物のデプロイ (deploy) までは自動化可能です。スナップショットの段階なら Hudson が新しいリビジョンを見つけるたびに自動デプロイしても何ら問題はありませんが、正式のリリースとなるとそうも言っていられません。

一応 OSSRH にステージング機能があるので、デプロイしてもいきなりリリースされることはないのですが、リリースしないものは破棄しなければなりませんので、リリース バージョンの自動デプロイは極力減らしたいところです。

そこで活用するのが Mercurial のブックマークです。例えばブックマーク release-candidate をリリース用のブランチに作成して、Hudson ではこのブックマークを追跡して自動デプロイするようにジョブを作っておきます。こうすると release-candidate の移動に伴ってリリース候補が OSSRH のステージング領域に自動デプロイされることになりますので、リリース OK となったら最後のリリース候補をリリースして残りを破棄すればリリース完了という流れです。

注意点としては、一旦リリースしたら次のリリースまでブックマークを移動しない (つまり自動デプロイしない) ようにすることでしょうか。Git でもブランチの移動を工夫すれば同様のことは可能だと思いますので、ぜひ試してみてください。

Jenkins 用 RAD Studio Plugin

過去記事を調べてみたらブログには書いてなかったことに気づいたので、改めて RAD Studio Plugin を紹介しておきます。

このプラグインの機能は、RAD Studio (Delphi もしくは C++Builder) のプロジェクトを簡単にビルドできるようにするだけです。必要な環境変数の設定は RAD Studio コマンド プロンプト用のバッチファイルから読み取るので、RAD Studio 各バージョンのインストール先をそれぞれ設定しておけば、ビルドに利用するバージョンを選択して、プロジェクトファイルと MSBuild のコマンド スイッチを指定するだけで、ビルドすることができます。もうバッチ ファイルで細工する必要ありません。

もし役に立つと感じたら、フィードバックをいただけるとありがたいです。