Skip to content

Commit e2aac6a

Browse files
committed
1.修改jlink打包工具类为runtime插件
1 parent a600ada commit e2aac6a

4 files changed

Lines changed: 128 additions & 91 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ buildscript {
1313

1414
plugins {
1515
id "org.gradlex.extra-java-module-info" version "1.7"
16-
id "org.beryx.jlink" version "2.26.0"
16+
// id "org.beryx.jlink" version "2.26.0"
1717
id "org.openjfx.javafxplugin" version "0.1.0"
1818
id "com.gluonhq.gluonfx-gradle-plugin" version "1.0.22"
1919
id 'idea'

xJavaFxTool/build.gradle

Lines changed: 127 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,88 @@
11
plugins {
2-
id "org.beryx.jlink" version "2.26.0"
2+
// id "org.beryx.jlink" version "2.26.0"
3+
id 'org.beryx.runtime' version '1.12.7'
34
id "org.openjfx.javafxplugin" version "0.1.0"
45
}
56

67
dependencies {
78
api project(':xcore')
8-
// api project(":littleTools:x-EncryptAndDecrypt")
9-
// api project(":littleTools:x-ZHConverter")
10-
// api project(":littleTools:x-ImageTool")
11-
// api project(":littleTools:x-IconTool")
12-
// api project(":littleTools:x-PdfConvertTool")
13-
// api project(":littleTools:x-QRCodeBuilder")
14-
// api project(":littleTools:x-FileCopy")
15-
// api project(":littleTools:x-FileMergeTool")
16-
// api project(":littleTools:x-TimeTool")
17-
// api project(":littleTools:x-CharacterConverter")
18-
// api project(":littleTools:x-BookManageSystem")
19-
// api project(":littleTools:x-CoordinateTransformTool")
20-
// api project(":littleTools:x-ElementaryArithmeticProblemTool")
21-
// api project(":littleTools:x-CronExpBuilder")
22-
// api project(":littleTools:x-EmailTool")
23-
// api project(":littleTools:x-ExcelSplitTool")
24-
// api project(":littleTools:x-FileBuildTool")
25-
// api project(":littleTools:x-FileCompressTool")
26-
// api project(":littleTools:x-FileRenameTool")
27-
// api project(":littleTools:x-FileSearchTool")
28-
// api project(":littleTools:x-HdfsTool")
29-
// api project(":littleTools:x-ImageAnalysisTool")
30-
// api project(":littleTools:x-JavaService")
31-
// api project(":littleTools:x-LinuxPathToWindowsPath")
32-
// api project(":littleTools:x-Mp3ConvertTool")
33-
// api project(":littleTools:x-RelationshipCalculator")
34-
// api project(":littleTools:x-SealBuilderTool")
35-
// api project(":littleTools:x-SedentaryReminderTool")
36-
// api project(":littleTools:x-SmsTool")
37-
// api project(":debugTools:x-CmdTool")
38-
// api project(":debugTools:x-ScanPortTool")
39-
// api project(":debugTools:x-SwitchHostsTool")
40-
// api project(":debugTools:x-SocketTool")
41-
// api project(":debugTools:x-ActiveMqTool")
42-
// api project(":debugTools:x-ExpressionParserTool")
43-
// api project(":debugTools:x-FtpClientTool")
44-
// api project(":debugTools:x-FtpServer")
45-
// api project(":debugTools:x-HbaseTool")
46-
// api project(":debugTools:x-HttpTool")
47-
// api project(":debugTools:x-KafkaTool")
48-
//// api project(":debugTools:x-KeyTool")
49-
// api project(":debugTools:x-RedisTool")
50-
// api project(":debugTools:x-ScriptEngineTool")
51-
// api project(":debugTools:x-ZookeeperTool")
52-
// api project(":codeTools:x-RegexTester")
53-
// api project(":codeTools:x-RandomGeneratorTool")
54-
// api project(":codeTools:x-IdCardGenerator")
55-
// api project(":codeTools:x-CharsetDetectTool")
56-
// api project(":codeTools:x-ColorCodeConverterTool")
57-
// api project(":codeTools:x-EscapeCharacter")
58-
// api project(":codeTools:x-FileUnicodeTransformationTool")
59-
// api project(":codeTools:x-WebSourcesTool")
60-
// api project(":developTools:x-AsciiPicTool")
61-
// api project(":developTools:x-JsonConvertTool")
62-
// api project(":developTools:x-ClipboardHistoryTool")
63-
// api project(":developTools:x-DirectoryTreeTool")
64-
// api project(":developTools:x-LuytenTool")
65-
// api project(":developTools:x-PathWatchTool")
66-
// api project(":assistTools:x-TextToSpeechTool")
67-
// api project(":assistTools:x-DecompilerWxApkgTool")
68-
// api project(":assistTools:x-IdiomDataTool")
69-
// api project(":assistTools:x-WechatJumpGameTool")
70-
// api project(":games:x-X2048")
71-
// api project(":games:x-BullsAndCowsGame")
72-
// api project(":games:x-Sudoku")
73-
// api project(":games:x-ChineseChess")
74-
// api project(":games:x-SnakeJavaFx")
75-
// api project(":games:x-pet")
76-
// api project(":javaFxTools:x-JavaFxXmlToObjectCode")
77-
// api project(":javaFxTools:x-ShowSystemInfo")
78-
// api project(":webTools:x-ShortURL")
79-
// api project(":netWorkTools:x-WebCronExpBuilder")
80-
// api project(":netWorkTools:x-WebJsonEditor")
9+
api project(":littleTools:x-EncryptAndDecrypt")
10+
api project(":littleTools:x-ZHConverter")
11+
api project(":littleTools:x-ImageTool")
12+
api project(":littleTools:x-IconTool")
13+
api project(":littleTools:x-PdfConvertTool")
14+
api project(":littleTools:x-QRCodeBuilder")
15+
api project(":littleTools:x-FileCopy")
16+
api project(":littleTools:x-FileMergeTool")
17+
api project(":littleTools:x-TimeTool")
18+
api project(":littleTools:x-CharacterConverter")
19+
api project(":littleTools:x-BookManageSystem")
20+
api project(":littleTools:x-CoordinateTransformTool")
21+
api project(":littleTools:x-ElementaryArithmeticProblemTool")
22+
api project(":littleTools:x-CronExpBuilder")
23+
api project(":littleTools:x-EmailTool")
24+
api project(":littleTools:x-ExcelSplitTool")
25+
api project(":littleTools:x-FileBuildTool")
26+
api project(":littleTools:x-FileCompressTool")
27+
api project(":littleTools:x-FileRenameTool")
28+
api project(":littleTools:x-FileSearchTool")
29+
api project(":littleTools:x-HdfsTool")
30+
api project(":littleTools:x-ImageAnalysisTool")
31+
api project(":littleTools:x-JavaService")
32+
api project(":littleTools:x-LinuxPathToWindowsPath")
33+
api project(":littleTools:x-Mp3ConvertTool")
34+
api project(":littleTools:x-RelationshipCalculator")
35+
api project(":littleTools:x-SealBuilderTool")
36+
api project(":littleTools:x-SedentaryReminderTool")
37+
api project(":littleTools:x-SmsTool")
38+
api project(":debugTools:x-CmdTool")
39+
api project(":debugTools:x-ScanPortTool")
40+
api project(":debugTools:x-SwitchHostsTool")
41+
api project(":debugTools:x-SocketTool")
42+
api project(":debugTools:x-ActiveMqTool")
43+
api project(":debugTools:x-ExpressionParserTool")
44+
api project(":debugTools:x-FtpClientTool")
45+
api project(":debugTools:x-FtpServer")
46+
api project(":debugTools:x-HbaseTool")
47+
api project(":debugTools:x-HttpTool")
48+
api project(":debugTools:x-KafkaTool")
49+
// api project(":debugTools:x-KeyTool")
50+
api project(":debugTools:x-RedisTool")
51+
api project(":debugTools:x-ScriptEngineTool")
52+
api project(":debugTools:x-ZookeeperTool")
53+
api project(":codeTools:x-RegexTester")
54+
api project(":codeTools:x-RandomGeneratorTool")
55+
api project(":codeTools:x-IdCardGenerator")
56+
api project(":codeTools:x-CharsetDetectTool")
57+
api project(":codeTools:x-ColorCodeConverterTool")
58+
api project(":codeTools:x-EscapeCharacter")
59+
api project(":codeTools:x-FileUnicodeTransformationTool")
60+
api project(":codeTools:x-WebSourcesTool")
61+
api project(":developTools:x-AsciiPicTool")
62+
api project(":developTools:x-JsonConvertTool")
63+
api project(":developTools:x-ClipboardHistoryTool")
64+
api project(":developTools:x-DirectoryTreeTool")
65+
api project(":developTools:x-LuytenTool")
66+
api project(":developTools:x-PathWatchTool")
67+
api project(":assistTools:x-TextToSpeechTool")
68+
api project(":assistTools:x-DecompilerWxApkgTool")
69+
api project(":assistTools:x-IdiomDataTool")
70+
api project(":assistTools:x-WechatJumpGameTool")
71+
api project(":games:x-X2048")
72+
api project(":games:x-BullsAndCowsGame")
73+
api project(":games:x-Sudoku")
74+
api project(":games:x-ChineseChess")
75+
api project(":games:x-SnakeJavaFx")
76+
api project(":games:x-pet")
77+
api project(":javaFxTools:x-JavaFxXmlToObjectCode")
78+
api project(":javaFxTools:x-ShowSystemInfo")
79+
api project(":webTools:x-ShortURL")
80+
api project(":netWorkTools:x-WebCronExpBuilder")
81+
api project(":netWorkTools:x-WebJsonEditor")
8182
}
8283

8384
group = 'com.xwintop'
84-
version = '0.2.3-jdk17'
85+
version = '1.2.3'
8586
description = 'xJavaFxTool'
8687

8788
compileJava {
@@ -99,26 +100,62 @@ application {
99100
"-XX:+ShowCodeDetailsInExceptionMessages",
100101
"-Dsun.java2d.opengl=true",
101102
// 不添加此参数,打包成exe后,https协议的网络图片资源无法加载
102-
"-Dhttps.protocols=TLSv1.1,TLSv1.2"
103+
"-Dhttps.protocols=TLSv1.1,TLSv1.2",
104+
'--add-exports=javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED',
105+
'--add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=ALL-UNNAMED',
106+
'--add-exports=javafx.graphics/com.sun.javafx.util=ALL-UNNAMED',
107+
'--add-exports=javafx.graphics/com.sun.javafx.stage=ALL-UNNAMED',
108+
'--add-exports=javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED',
109+
'--add-exports=javafx.base/com.sun.javafx.event=ALL-UNNAMED',
110+
'--add-opens=java.base/java.lang.reflect=ALL-UNNAMED'
103111
]
104112
}
105113

106-
jlink {
107-
mergedModule {
108-
requires 'java.naming'
109-
// requires 'java.xml'
110-
}
111-
addExtraDependencies("javafx")
114+
// 使用 https://badass-runtime-plugin.beryx.org/releases/latest/
115+
// 插件 Badass-Runtime plugin 需要将主类单独抽离出来,这里使用Launcher作为启动类,不然的话,会提示没有加载Java FX组件
116+
runtime {
117+
options.set(['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages'])
118+
modules.set([
119+
'java.desktop',
120+
'java.xml',
121+
'jdk.unsupported',
122+
'jdk.jfr',
123+
'jdk.unsupported.desktop',
124+
'java.datatransfer',
125+
'java.scripting',
126+
'java.rmi',
127+
'java.sql',
128+
'java.naming',
129+
'java.compiler',
130+
'java.logging',
131+
'java.management'])
112132
launcher {
113-
name = application.applicationName
114-
mainClassName = application.mainClass
115-
// jvmArgs = ['-Dlogback.configurationFile=./logback.xml']
133+
// 如果构建后无法启动并且无法知晓异常时,可以将此参数配置为false,
134+
// 然后执行 gradle runtime,会得到bat方式的可执行程序,在cmd中运行对应bat,可以看到对应异常
135+
noConsole = true
116136
}
117137
jpackage {
118-
outputDir = "build-package"
119138
imageName = application.applicationName
120-
skipInstaller = false
121-
installerName = application.applicationName
122-
appVersion = version.toString()
139+
imageOptions.addAll(['--icon', 'src/main/resources/images/icon.jpg'])
123140
}
124-
}
141+
}
142+
143+
//jlink {
144+
// mergedModule {
145+
// requires 'java.naming'
146+
//// requires 'java.xml'
147+
// }
148+
// addExtraDependencies("javafx")
149+
// launcher {
150+
// name = application.applicationName
151+
// mainClassName = application.mainClass
152+
//// jvmArgs = ['-Dlogback.configurationFile=./logback.xml']
153+
// }
154+
// jpackage {
155+
// outputDir = "build-package"
156+
// imageName = application.applicationName
157+
// skipInstaller = false
158+
// installerName = application.applicationName
159+
// appVersion = version.toString()
160+
// }
161+
//}
File renamed without changes.

0 commit comments

Comments
 (0)