jacoco.execが生成されない

pom.xmlにjacocoを追加したものの、実行してみると

[INFO] Skipping JaCoCo execution due to missing execution data file.

みたいな感じのメッセージが表示され、jacocoが実行されない。target/jacoco.execが生成されていないためなのだが、これが起きる原因としては、surefireの設定が関係している場合がある。たとえば、pom.xmlのsurefire設定で

<argLine>${test.command.args}</argLine>

という感じで設定していると、jacocoの引数が渡されなくなるようなので、

<argLine>@{argLine} ${test.command.args}</argLine>

という感じに変更すると解決する。

maven-source-pluginでエラーが出る

maven-source-pluginを3.3.0に上げたら、以下のようなエラーが出るようになった。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-source-plugin:3.3.0:jar (source-jar) on project fess-crawler: Presumably you have configured maven-source-plugn to execute twice times in your build. You have to configure a classifier for at least on of them. -> [Help 1]

これだと思うのだが、mvn package javadoc:jarみたいな感じで、マルチプロジェクトとかで複数の処理があると起きるみたい。とりあえず、3.3.0にする必要がないなら、3.2.1に戻すなどが良さそう。

GitHubActionのWindowsでMaven実行

ファイルロックされてファイルが消せないとか、Windowsで発生する問題を検知したいなと思い、GitHub ActionsでLinux&Windowsで実行したくなったので、調べたら、簡単にできた。

たとえば、.github/workflows/maven.ymlを

name: Java CI with Maven

on:
  push:
    branches:
    - main
  pull_request:
    branches:
    - main

jobs:
  build:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest]
    steps:
    - uses: actions/checkout@v2
    - name: Set up JDK 11
      uses: actions/setup-java@v2
      with:
        java-version: '11'
        distribution: 'temurin'
    - name: Build with Maven
      run: mvn -B package --file pom.xm

という感じで、作っておいておけば、良い感じだった。