mike-neckのブログ

Java or Groovy or Swift or Golang

gradle

graalvm-native-image プラグイン 0.6.1 続いて 0.7.0 をリリースしました

表題のとおりですが、 0.5.0 をほぼ全部書き換えています。 API そのものは変更していないので、ユーザーが既存のビルドを維持する場合に現在の DSL に手を加える必要はありません plugins.gradle.org 正確には v0.6.1 を 2020-06-21 に v0.7.0 を 2020-06-3…

savanna-gradle-plugin をリリースしました

仕事サボって作ってた pic.twitter.com/XOX7zWviLY— 引きこもり持田 (@mike_neck) 2020年6月19日 会社で仕事をサボってツイッター見てたら、t_wada さんのトレードマークと言えるライオンに関するツイートがいくつか流れてきました。 テストが書かれていない…

Gradle の C++ プラグインを使って JNI から C++ のコードを呼び出すアプリケーションをビルドする(Android プロジェクトではない)

GraalVM の native-image を作る際に利用する config.json を自動生成させて、アプリケーションを複数回実行してマージするというのをやろうとしており、 JNI を使う Java アプリケーション(JNA ではない)を Gradle でビルドする必要が出てきたが、残念なこ…

precompiled groovy dsl が便利そう

precompiled groovy dsl は buildSrc プロジェクトに gradle ファイルを入れておくと、メインの build.gradle でプラグイン取り込みの仕組みを使って取り込める機能で、ファイルを分割して apply from <file> としてたビルドファイルを分割していた仕組みの強化版(</file>…

asciidoctor-gradle-plugin の使い方

google で「asciidoctor gradle plugin」で検索して表示される結果が古すぎて使い物にならなかったので、書いておくことにした。古いものベースで gradle を書いていたところ、DSL でわからないところがあったため、 github でコードを探したが見つからず混…

github actions で GraalVM でつくったネイティブアプリケーションを GitHub リリースする

date コマンドを使うときにいつもググって調べるくらいの unix 音痴で、 Java の JSR310 ならすぐできるのにと思うことが多いので、そのようなコマンドを作ることにしました。 github.com 機能はまだ作り込んでいなくて、まずはフォーマットを指定できるだけ…

Sonatype OSSRH へのリリース方法 Gradle 編 最新版-2020-04-08

久々に Maven Central にリリースしようと思って、 gradle と GnuPG などをいじくったので、そのまとめ。 3行でまとめ GnuPG のバージョン 2 を使う GnuPG は secretKeyRing ファイルがなくなっているので、 signing の指定方法が幾分変わっている。 CI から…

SpringBoot 2.3.0.M1 で buildpack による Docker image 生成ができるようになってたので試してみた

表題の通り、簡単に試してみた。 以下、手順。

Gradle でテストが落ちても残りのタスクを続ける

例えば、テストの結果の xml を zip ファイルに固めて s3 に保存したい場合などに、テストが落ちてしまうと、後続のタスクも落ちてしまう。このようなタスクを一発で通したい場合のワークアラウンド。

Gradle 5.5 で JUnit Jupiter が gradle init 時にテストフレームワークとして選べるようになっていた

表題の通りです 次のコマンドをターミナルで叩きます。 gradle init \ --type java-library \ --test-framework junit-jupiter \ --dsl groovy \ --package com.example \ --project-name example-library 次のような build.gradle ファイルが生成されます /…

Groovy が書けない人のための Gradle 入門

若干ネタ気味ですが、 Groovy を覚えるのが面倒だけど、 Kotlin を覚えるのも面倒という方のためにお勧めしたいのが、 Java で書くという方法です。 というわけで、次のような build.gradle を書きます。 Project project = getProject(); project.getPlugin…

Gradle で BOM を扱う

Spring の dependencyManagementPlugin は使わないで、これをやる方法。

Gradle4.6 からの JUnit5 実行方法

Gradle4.6 がリリースされ、 JUnit5 に対応しました。以下にGradle から JUnit5 のテストを実行するための build.gradle を示しますが、特殊なことをするわけではありません。 build.gradle plugins { id 'java' } repositories { mavenCentral() } test { u…

Gradle kotlin DSL の便利機能

Gradle のスクリプトを Kotlin で書いていると、タスクが自動的に二つ足されていることに気づいたので、それを使ってみたら、わりと便利だった。 kotlinDslAccessorsReport タスク 現在のプロジェクトが利用できる extension と convention のKotlin 実装コ…

Gradle JUnit5 Starter Pluginをリリースした

JUnit5 がリリースされてだいぶたちますが、そろそろ移行終わりましたか? ちなみに僕が勤務している会社ではJavaのバージョンがあわないので、JUnit4のままです。 ところで、JUnit5を使う時、わりと面倒くさい設定をいろいろと書かなければならず、導入する…

kotlinでgradle のスクリプトを書く時に気をつけたい点

Gradleは元々Groovyで書かれてたツールで、バージョン2の頃にほぼすべてをJavaに置き換えられたという経緯があるのですが、未だに古い一部の実装ではGroovyでスクリプトを書くことを前提にしている箇所があります(と断言していいかどうかは自信がない)。 mav…

Gradle Kotlin DSL を用いたプロジェクトでmavenにpublishするときの注意

gradle kotlin-dsl のサンプル「hello-kotlin」を真似て、kotlin stdlib のdependencyを記述すると、invalidなpomが生成されてしまう。 dependencies { api(kotlin("stdlib-jre8")) } 生成されるpom.xml <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib-jre8</artifactId> </dependency> version …

Java9でGradleを動かす

単なるメモ Javaのバージョンが2017/10/22現在で9.0.1で、Gradleのバージョンが4.2.1以下だとJavaのバージョンをパースできないためにGradleを実行できない Gradle4.2 での実行結果 $ java --version Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8 java 9…

Gradleでプラグインを利用する方法

今更なタイトルですが… incubatingなAPIで plugins DSLと呼ばれている方法です。plugins DSLはgradleのplugin repositoryにあるプラグインをid(とバージョン)だけで引っ張ってこれるようにする方法で、gradleの2.10くらいに登場しています。gradleにデフォル…

ArtifactoryのDockerイメージとgradleでのartifactのデプロイのメモ

少々こまったことがあったので、Artifactoryを調べたので、そのメモ。なお、数年前も同じことを調べたという記憶があるのだが、メモを残していなかったのであらたに調べることになった… 書かれていること ArtifactoryのイメージをビルドするDockerfile プロ…

Gradle2.11の新機能を試してみた(1)

Gradle2.11でJavaソフトウェアモデルに対してJUnitによるテストがサポートされたので試してみました。 基本 ディレクトリー構成は以下のとおりです。 root └─src ├─data │ └─java ├─data.test │ └─java ├─exceptions │ └─java └─functions └─java 使用するJa…

Gradle2.11リリースノート意訳(また途中)

gradleのバージョン2.11がとっくの昔に出ていたので、リリースノートを意訳しておきました。 原文はこちら Gradle2.11ではソフトウェアモデルとIDE連携およびコンティニュアスビルドを強化しています。 ソフトウェアモデル改善はGradleの現在の目標となって…

Gradle2.10のリリースノート意訳

久々にパソコンの前に座ったので、リハビリ代わりに先月にリリースされたGradle2.10のリリースノート意訳というか、中途半端に翻訳した。分量が多かったので訳してないところがありますが、引き続き入院してるので、翻訳の続きはありません。 オリジナル(英…

GradleのJVM component modelスタイルのプロジェクトをJigsawでビルドする #gradle #java #jigsaw

前回のエントリーでGradleにおけるJVM component modelの実践的な内容を紹介した。 mike-neck.hatenadiary.com ここで紹介したプロジェクトのビルド成果物はこちらのエントリーでも紹介した、Javaモジュールシステム的な考えが採用された成果物である。つま…

Gradle3におけるJavaプロジェクトのビルド入門(4) -- 実践編 #gradle

Gradle3におけるJavaプロジェクトのビルド入門の一連の記事ではJVM component modelによるJavaプロジェクトのビルド方法について紹介してきた。その過程でJDK9より導入されるJigsawとの関連も指摘しておいた。 この記事では実践的なJVM component modelによ…

Gradle3におけるJavaプロジェクトのビルド入門(3) -- 用語の再確認とJigsawとの関連 #gradle

今回はJVM component modelにおける用語について整理しておく。 前回、前々回とGradle3におけるJavaプロジェクトのビルドにおけるJVM component modelの入門を行っていった。 mike-neck.hatenadiary.com mike-neck.hatenadiary.com また、JVM component mode…

Jigsawについて雑にまとめてみた

以前、Gradle3におけるJavaプロジェクトのビルドについてのエントリーを書きましたが、Gradle3のJVM component modelって、まあ、わりと、Java9のJigsawみたいなものなんですね。で、Jigsaw自体知っている人が多いと思いますが、あらためてJigsawが解決した…

Gradle-2.9-rc1のリリースノートで訳し忘れてたライブラリーAPI定義について意訳(JDK9にも関連) #gradle

意訳には(僕に)定評のあるGradleのリリースノートですが、前回訳した時に、意図して訳さなかったのか、JavaOne開催中でProject Jigsaw関連に合わせるためにその時には書かれていなかったのか、どっちか定かではありませんが、リリースノートの意訳にExplicit…

Gradle3におけるJavaプロジェクトのビルド入門(2) #gradle

前回は、JVM component modelによるJavaプロジェクトのビルドの入門をおこなった。 mike-neck.hatenadiary.com これまでのjavaプラグインに比べると記述量が増えてしまうが、遜色ないビルドができることは示せたと思う。 複数ライブラリー(コンポーネント) …

Gradle3におけるJavaプロジェクトのビルド入門(1) #gradle

Gradleは元々の作りが非常にブラックボックスなため、設定されたオブジェクトのライフサイクルがわかりづらいなどの問題があり、Gradle3に向けて、それを修正している最中です。その中核となるのがRule Based Model Configurationという仕組みです。 その仕…