簡體   English   中英

如何使用 gluonfx:build 在生成的可執行文件中添加版本、描述和版權元數據?

[英]Howto add the version, description and copyright meta-data in the generated executable using gluonfx:build?

我們需要生成的可執行文件中的元信息,以便右鍵單擊並選擇“詳細信息”將顯示描述、版權和版本。

我們在 releaseConfiguration 塊中添加了描述和供應商,但可執行文件仍然沒有元信息。

在 GluonFX 插件支持此功能之前,有一種相對簡單的方法可以將元數據添加到您的可執行文件中。

您需要一個version.rc文件,就像 OpenJFX 用於不同的 JavaFX 庫的文件: version.rc

然后,基本上你需要用正確的值編譯它,最后將它與生成可執行文件的 obj 文件的 rest 鏈接起來。

這些是必需的步驟:

構建 GluonFX 項目

假設你有一個像HelloGluon這樣的項目,你需要運行一次:

mvn gluonfx:build

這將在target/gluonfx/x86_64-windows/HelloGluon.exe下生成一個沒有元數據的可執行文件。

資源文件

通過target/gluonfx/x86_64-windows/gvm/tmp/icon/IconGroup.obj添加了默認圖標這一事實意味着已經有一個資源文件添加到可執行文件中。 由於只能有一個,我們需要通過一些手動工作來繞過它。

如果你檢查日志:

Default icon.ico image generated in C:\%path.to.project%\target\gluonfx\x86_64-windows\gensrc\windows\assets.
Consider copying it to C:\%path.to.project%\src\windows

因此,讓我們這樣做:創建文件夾C:\%path.to.project%\src\windows ,並復制圖標icon.icoversion.rc文件。

編輯C:\%path.to.project%\src\windows\version.rc並在#define STR(x) #x之后添加以下內容:

IDI_ICON1 ICON "icon.ico"

編譯

按照 OpenJFX win.gradle構建文件中用於編譯的標志,並從 x64 命令提示符,您可以運行:

cd C:\%path.to.your.project%\src\windows

rc /d JFX_FNAME=HelloGluon.exe /d JFX_INTERNAL_NAME=HelloGluon \
   /d "JFX_COMPANY=My company" /d "JFX_COMPONENT=My component" \
   /d "JFX_NAME=My name" /d "JFX_VER=1.0.0" /d "JFX_BUILD_ID=1.0.0.0+1" \
   /d "JFX_COPYRIGHT=My Copyright" /d "JFX_FVER=1,0,0" \
   /d "JFX_FTYPE=0x7L" \
   /FoC:\%path.to.your.project%\src\windows\version.res version.rc


cvtres /machine:x64 -out:C:\%path.to.your.project%\src\windows\version.obj C:\%path.to.your.project%\src\windows\version.res


這應該創建version.obj

> dir
 
C:\%path.to.your.project%\src\windows

21/01/2023  14:38    <DIR>          .
21/01/2023  14:38    <DIR>          ..
21/01/2023  14:18            15.031 icon.ico
21/01/2023  14:38             1.528 version.obj
21/01/2023  14:36             2.629 version.rc
21/01/2023  14:36               796 version.res

關聯

現在檢查日志target/gluonfx/log/process-link-****.log並復制鏈接命令,現在用你的 `version.obj 替換IconGroup.obj

link C:\%path.to.project%\target\gluonfx\x86_64-windows\gvm\HelloGluon\launcher.obj \
C:\%path.to.project%\target\gluonfx\x86_64-windows\gvm\tmp\SVM-*****\com.gluonapplication.gluonapplication.obj \

C:\%path.to.project%\src\windows\version.obj \

j2pkcs11.lib java.lib ... crypt32.lib /NODEFAULTLIB:libcmt.lib \
/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup comdlg32.lib ... prism_d3d.lib /WHOLEARCHIVE:glass.lib ... /WHOLEARCHIVE:prism_d3d.lib \
/OUT:C:\%path.to.project%\target\gluonfx\x86_64-windows\HelloGluon.exe \
/LIBPATH:C:\~\.gluon\substrate\javafxStaticSdk\20-ea+7\windows-x86_64\sdk\lib \
/LIBPATH:C:\graalvm-svm-java17-windows-gluon-22.1.0.1-Final\lib\svm\clibraries\windows-amd64 \
/LIBPATH:C:\graalvm-svm-java17-windows-gluon-22.1.0.1-Final\lib\static\windows-amd64


這將再次鏈接您的可執行文件與您的元數據,您將從 Windows Explorer 中看到詳細信息:

請注意,如果您再次運行mvn gluonfx:build ,您將丟失元數據,並且您將需要重新運行手動鏈接命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM