Azure PipelineでJavaFXを利用したアプリケーションをビルドする

公開日:2019-03-28
最終更新:2019-03-28

はじめに

これは、現在開発中のTrinity+というデスクトップアプリケーションのビルドをAzure Pipelineで構築しようとした時に躓いたので、それに関する試行錯誤をまとめました。

前提

  • JavaFXアプリケーションのビルド&Javapackagerでのパッケージングをする
  • JDK8 (使用ライブラリがJDK8までしか対応していなかった)(多分JDK11でも同様にできるとは思う)
  • WindowsのVMImageを利用(javapackagerでWindows向けインストーラー作るにはWindowsである必要があるから。)
  • ビルドツールとしてGradle Wrapperを使用する

成果物

とりあえず完成品

ゴチャゴチャした説明とかいらないからとりあえずコピペして使える完成品をくれ!という人向け。
最新版はGitHubを参照。

trigger:  
- master  

pool:  
  vmImage: 'vs2017-win2016'  

steps:  

- bash: "curl -o jdk.7z -L $(jdk_win)"  
  name: 'dlJDK'  

- task: [email protected]  
  inputs:  
    archiveFilePatterns: '*.7z'   
    destinationFolder: 'jdk'  
  name: 'extractJDK'  

- bash: './gradlew installDist -Dorg.gradle.java.home=jdk'  
  name: 'build'  

- powershell: |  
    $env:PATH += (";" + $env:WIX + "bin")  
    jdk/bin/javapackager -deploy -outdir target -outfile Trinity+ -srcdir build/install/Trinity+/lib -appclass toliner.trinityplus.TrinityPlusApp -name Trinity+ -title Trinity+ -native installer -Bvendor=toliner -BsystemWide=false  
  name: 'package'  

- task: [email protected]  
  inputs:  
    contents: 'target\**\?(*.exe|*.msi)'  
    targetFolder: '$(Build.ArtifactStagingDirectory)'  
    overWrite: true #Optional  

- task: [email protected]  
  inputs:  
    pathtoPublish: '$(Build.ArtifactStagingDirectory)'  
    artifactName: trinity-win  

利用方法

  1. Azure PipelineのBuildのyaml編集画面にコレを貼り付けます。
  2. 23行目のjavapackagerの引数を、自分のプロジェクト用のものに書き換えます。
  3. 最後の行のartifactNameをお好みの名前に書き換えます。
  4. Amazon Coretto 8をダウンロードします。
  5. Corettoを展開し、demoやsample等の不要なファイル/フォルダを消します。
  6. 圧縮されたアーカイブのルートにbinやjre等のフォルダが配置されるように7z形式でまとめて圧縮します。
  7. そのファイルへの直のダウンロードリンクを生成できる何かしらのファイルストレージ(DropBox等)に7zファイルをアップロードします。
  8. Azure PipelineのVeriableの編集画面にjdk_winという名前でアップロードしたファイルへのリンクを環境変数に登録します。
  9. Saveして走らせよう。

やっていること

  1. 指定したurlからCorettoをダウンロード
  2. 解凍
  3. Corettoのパスを指定してGradle Wrapperでビルド(javapackagerで依存ライブラリ群のjarが必要なのでinstallDist)
  4. PowerShellでjavapackagerを起動
  5. 完成したexeとmsiをビルド成果物用のフォルダにコピー
  6. 成果物をpublish

Publishされた成果物はReleaseパイプラインで煮るなり焼くなり好きにしてください。
俺はとりあえずDropBoxにアップロードしました。

記事が少しでもいいなと思ったらクラップを送ってみよう!
16
+1
@tolinerのあれこれ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする