問題タブ [jpackage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 継続的デリバリー エージェントで jpackage を使用して Windows インストーラーを構築する
CD エージェントで jpackage タスクを実行すると問題が発生します。次のエラーが表示されます。
light.exe : error LGHT0217 : Error executing ICE action 'ICE01'. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wixtoolset.org/documentation/error217/ for details and how to solve this problem. The following string format was not expected by the external UI message logger: "The Windows Installer Service could not be accessed. This can occur if the Windows Installer is not correctly installed. Contact your support personnel for assistance.".
私はいくつかの調査を行いましたが、基本的に問題は次の方法で解決できます。
- エージェントのユーザーに管理者権限を追加する
- 環境変数のサイズを確認します (一部の人にとっては、サイズが 32KB を超える環境変数を使用すると同様のエラーが発生します)
- ICE検証の抑制
私の場合、この解決策はそれぞれ無関係であるか、問題があります。
- CD で管理者ユーザーを使用できません
- 環境変数は 32KB (10KB) 未満です
- jpackage を使用して ICE 検証を抑制する方法が見つかりません - -sval を light.exe に渡すか、wixproj ファイルのプロパティを指定することで実行できることはわかっていますが、light.exe パラメータを jpackage に入力する方法がわかりません (可能な場合) --resource-dir で渡された wixproj ファイルは変更されていないようです。
明確にするために、私のローカル環境では完全に正常に動作しています。
したがって、おそらく私の問題は、jpackage レベルから ICE 検証を抑制することができるかどうかという問題に要約できます。
私はgradleにbadass-runtime-pluginを使用しており、javafx + spring bootアプリケーションのインストーラーを構築しようとしています。ここに私のbuild.gradel
関連部分があります:
javafx - 自動モジュールを使用する JavaFX アプリケーションの配布
JavaFX アプリケーションを作成しました。Intellij IDE で完全に動作します。ここで、アプリケーションを配布したいと考えています。つまり、ユーザーがダウンロードしてアプリケーションをインストールできるインストーラーを入手したいと考えています。
これについて非常に興味深い記事を見つけましたここ. このブログ記事は、基本的に私が達成したいことを説明しています。ただし、次の 2 つの違いがあります。
GradleではなくMavenを使用しています
iText7 や apache.commons.lang3 などの自動モジュールを使用する依存関係があります。
自動モジュールの使用は、物事を非常に複雑にしています。これらの問題を解決するために作成されたModiTect (ここ)と呼ばれる GitHub プロジェクトがあります。私は ModiTect を使用した経験がなく、Maven の知識もほとんどありません (つまり、pom.xml で何をしているのかよくわかりません)。
私が探しているのは、自動モジュール (および sqlite も使用) を使用する JavaFX アプリケーションのインストーラーを取得するために、ModiTect (および必要に応じて jpackage) を pom.xml に統合する方法に関する説明 (ステップバイステップ) です。データベースですが、これは問題にはなりません)。
誰かがこの説明を提供したり、チュートリアルを参照したりできますか?
この質問の最後に MWE を提供します。MWE は TestApp です。問題を説明するには、アプリケーションを実行し、[PDF の印刷] ボタンを押します。リソースでPDFが作成されます --> pdf
MWE は、javafx:run の実行時にコンパイルおよび実行されます javafx:jlink の実行時に自動モジュールの使用に関連するエラーが発生します
これを修正する方法がわかりません。ModiTect は有望なアドオンのようです。別の可能な方法は、このGitHub リポジトリにあります。しかし、前に言ったように、私の Maven の知識は、ここで何が起こっているのかを本当に理解するには十分ではありません。どんな助けも私にとって大きな意味があります!
MWE:
pom.xml:
モジュール情報.java:
TestAppController.java:
TestApp.java:
testApp.fxml: