kuniku’s diary

はてなダイアリーから移行(旧 d.hatena.ne.jp/kuniku/)、表示がおかしな箇所はコメントをお願いします。記載されている内容は日付およびバージョンに注意してください。直近1年以上前は古い情報の可能性が高くなります。

GitHub ActionsのCI と maven(Java with Maven)

すごい久しぶりに、mavenコマンドを触っている。 いつぶりだろうpomをいろいろ、プロファイルを切り替えたり、自前で作成したのは2014年くらいが最後だったかな? その後は誰かの後のメンテナンスでしか触っていない。

mavenリポジトリにない Oraclejdbcドライバのjarをローカルにinstallする

  • 構成上、libをフォルダを作成して、そこにjarを置いてしまう。自前で使えるmavenリポジトリがあるわけではないため。
      run: mvn install:install-file -Dfile=./foo-project/lib/ojdbc14-10.2.0.4.0.jar -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar
  • 例)pom xmlにsystemPathで書いている場合
<dependency>
・・・
  <scope>system</scope>
  <systemPath>${project.basedir}/lib/ojdbc14.jar</systemPath>
</dependency>

pomファイルを指定してmvnを実行

リポジトリA .github /workflows /maven.yml foo-project /lib/ojdbc14-10.2.0.4.0.jar /pom.xml foo-war foo-batch .gitignore readme.md

みたいな場合に、 foo-project/pom.xml があって、それをもとにビルドをすると仮定 ローカルの開発環境でビルドしているときに、以下の場合は

 cd ./foo-project/
 mvn clean package -P production -f pom.xml

でビルドしているならば

maven.yml では 相対パス指定でビルドさせるように記述する

run mvn clean package -P production -f ./foo-project/pom.xml

ビルドまでできるようにした yml 、半角スペースは必要なので注意

.github/workflows/maven.yml

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Set up JDK 1.7
      uses: actions/setup-java@v1
      with:
        java-version: 1.7
    - name: Install ojdbc14-10.2.0.4.0.jar
      run: mvn install:install-file -Dfile=./foo-project/lib/ojdbc14-10.2.0.4.0.jar -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar
    - name: Build with Maven
      run: mvn clean package -P dev -f ./foo-project/pom.xml

疑問と残

githubのyml修正してマージする前にローカルで同じことを試せる(mvn実行をできる)方法ないのかな?