Gradle
Spockでユニットテストを書いている、Gradleを使ったJavaプロジェクトがある。 Intellijでユニットテストを実行するとき、ソースコードに変更があると毎回ユニットテストのすべてのクラスがコンパイルされてしまい、実行までに2分前後のコンパイル待ちが発生…
プロジェクト管理ツールにGradleを使ったSpring Bootプロジェクトのユニットテストを、GitLab CIのパイプラインで実行しているが、完了するのに45分程度かかっていた。 その後のデプロイなど含めると、トータル1時間程度かかってしまう。 短縮できないか調べ…
前回の続き。 前回の記事ではSpotBugsやPMD/CPDによる解析結果をマージリクエスト(GitHubなどのプルリクエストに相当、以下MR)連携したが、業務ではSonarQube CEで静的解析をしている。 SonarQube CEの場合、v7.6まではプレビューモードで解析することで、各…
静的解析ツールを導入しているが、事前に解析結果をチェックしてといってもなかなか潰しきれない。 GitサーバーとしてGitLabを使っているので、マージリクエスト(GitHubなどのプルリクエストに相当、以下MR)でコードレビューを行っているが、静的解析結果をM…
Java8からJava11にアップデートをしたところ、Intellijからテスト実行ができなくなった。 Git Bashから ./gradlew test したり、コマンドプロンプトから gradlew.bat test すると問題なく実行できるので、Intellij起因の問題だろうと思って調べたが、かなり…
typescript-generatorプラグインでJavadocからTSDocを生成したのち、XMLを直接読み込んだらいろいろできそうだなと思いついた。 Enumの値のJavadocと、フィールドで設定された値を出力したい場合があり、試してみたらできたのでメモ。 やりたいこと 実装例 J…
前回の続き。 JavadocからTSDoc変換をできるようにしたが、運用しているとJavadoc出力時にエラーが出る場合があったのでメモ。 Windowsでエラーが発生する 振り返り Windowsでエラーが発生する 特定の端末で「docletクラスcom.github.markusbernhardt.xmldoc…
以前調査したtypescript-generator、その後もパラメーター調整しながら使用しているが、困ったのがヒアドキュメント。 Java側ではJavadocでクラスやプロパティの説明を書いているが、生成したTypeScriptのインターフェース定義ファイルにはデフォルトだと出…
小ネタ。 GradleでJavaのコンパイルするバージョンなどを指定する際、お決まりで apply plugin: 'java' sourceCompatibility = 1.8 targetCompatibility = '1.8' のように記述するが、ここに列挙型が使える。 ただ、毎回クラス名が何だったか忘れるのでメモ…
開発端末がmacOSだけのプロジェクトに、ひとりWindowsでアサインされた。 プロジェクト管理がGradle、フレームワークがSpring Boot、開発言語がJavaまたはKotlinだったので、さっそく gradlew.bat bootRun すると、 A problem occurred starting process 'co…
Spring Bootを使ったJavaプロジェクトで、 bootRun をしてから起動するまで数分かかっていた。 調べてみると、 processResources タスクで src/main/webapp/WEB-INF を build/build/resources/main/WEB-INF にコピーしていたが、 src/main/webapp/WEB-INF 配…
新しいMacBookを購入した人から、開発環境構築中に ./gradlew build がエラーになるとの相談を受けた。 地獄のようにハマったのでメモ。 状況 原因 対応 その後の問題と対応 振り返り 追記 状況 新しいMacBookにて、Gradleを使ったJavaプロジェクトで ./grad…
フロントエンドをTypeScriptで記述することとなり、リクエストやレスポンスで受け渡すデータもTypeScriptで型定義したいという要望がでてきた。 バックエンドはSpring Bootを使ったJavaアプリケーションで、ダブルメンテになると面倒。 JavaのクラスからType…
前回のように、調整でGradleの test タスク実行を繰り返していると、変更がない場合 UP-TO-DATE となって実行されない。 gradle clean test ではコンパイルからやり直しだし、いちいちテストを変更して再実行するのも面倒。手軽にテストを再実行する方法を調…
前回の続き。 アサインされたJavaプロジェクトではSpring Bootを使用しているが、ユニットテストではモックが使われていなかった。 @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) でWebサーバーを起動し、 TestRestTemplate でControllerク…
BuildshipでdefaultOutputDirを指定していたが、Eclipseを2019-03から2019-09に更新すると、エラーが出るようになった。 Eclipseの仕様変更が原因のようなのでメモ。 環境 Eclipse 2019-09、Buildship 3.1.2で確認。 状況 前回の記事の設定だと、Eclipse 201…
古いGradleプロジェクトをEclipseで開いたら、クラスファイルの出力先が変わっているという相談を受け調べたのでメモ。 追記 Eclipse 2019-09だと、この方法が使えない模様。以下参照。 Eclipse 2019-09にしたらGradle(Buildship)でdefaultOutputDirの指定が…