Kengo's blog

Technical articles about original projects, JVM, Static Analysis and JavaScript.

Gradle

技術書「JavaのビルドとCIのキホン」を公開しました

zenn.dev がホットなのでフォロワーの皆様にアンケートを取った結果、「JavaのビルドとCIのキホン」が5票を獲得したので書きました。 私が書くなら何を読んでみたいですか— 達者でな (@Kengo_TODA) September 20, 2020 書籍はこちらです。 zenn.dev zenn.dev…

Javaライブラリを配布する際のログ周りにおける配慮と実践 2020

この記事は、2013年に書いた記事を現状に合わせてアップデートするものです。結論から言うと、当時から id:miyakawa_taku さんがおっしゃっていた「APIは依存に含めて良い」を支持するものです。あるいは無難にバージョン 1.7.30 を使っておきましょう。 blo…

最近キャッチアップしているもの 2020-05

いろいろ手を出しすぎてごちゃごちゃしてきているので、頭の中を整理する目的でここに書き出す。 reproducible build Mavenのメーリスで話題に出ることがあり知った。特別新しい概念ではないけどある種のunlearningであり、ビルド職人は見といて損ないやつ。…

考察:Reactive Workflowが生まれた背景とその狙い

人に説明するのがスムーズにできなさそうなので、理論武装というか順序立てて話すためにこの記事をまとめる。 対象 ブラウザから利用するマルチプラットフォーム向けウェブアプリケーションの開発 モバイルのネイティブアプリ開発は含まない(知らないので)…

JavaウェブアプリプロジェクトにJavaScript/TypeScriptなどの静的アセットをどう配置するか

以前のJavaウェブアプリ開発では、JavaScriptをはじめとした静的アセットはsrc/main/webappディレクトリに配置するのが普通だった。そこに置くことでmaven-war-pluginのようなビルドシステムが.warファイルの中に突っ込んでくれる。この挙動は今でも変わらな…

Javaプロジェクトにおけるリリース周りの手法あれこれ

考慮する点 成果物のデプロイ ビルドの成果物(artifct)をアップロードすること。アップロードと公開は分けて考えることに注意。デプロイ先にはいくつか候補がある: GitHub Packages (旧GitHub Package Registry) Maven Central Repository Docker Hubなど…

Gradle用のGitHub Actions勘どころ

GitHub Actions のベータ版が個人リポジトリの方に来ているので、色々と試しています。使っているテンプレートプロジェクトと実アプリケーションプロジェクトから、いくつか事例を紹介します。 なお各種単語の定義が公式サイトにあるので、いちど目を通すこ…

selenium-jupiterを試した

JUnit 5にTemporalyFolderに相当する機能がなかったため、自分のプロジェクトでは長らくJUnit4を使っていました。しかし5.4でTempDirが来たため、徐々にJUnit5に置き換えています。 その過程でSelenideを使った統合テストをJUnit5に置き換えたのですが、sele…

Gradleプロジェクト用semantic-releaseプラグインを書いた

Gradle用のsemantic-releaseプラグインはJavaでsemantic-releaseを再実装したものしか無かったので、TypeScriptで書いたものを作りました。 github.com ./gradlew publish を叩くだけのシンプルなものですが、CI周りの設定はGradle側に寄せてあるはずなので…