建立项目后,先开始思索项目整体架构应该是什么样的:
[ol]
[/ol]
这样大致可以确定程序流程和架构了。
因此需要实现的功能包括:
[ol]
[/ol]
重点来看看打包环节,看 GraalVM 如何大显身手,可执行文件如何摆脱对 Java 的依赖的。
GraalVM 提供了 org.graalvm.buildtools:native-maven-plugin 插件构建原生可执行文件。构建流程:
[ol]
[/ol]
运行 java -agentlib:native-image-agent=config-merge-dir=./src/main/resources/META-INF/native-image/config -jar ./target/my-toolbox-fat.jar 生成配置信息,mvn package 即可生产原生可执行文件。
🎉🎉🎉,就这样我们的工具箱就完成了。
运行示例:
$ ~ mytool
ERROR: Please check tool name
About: [email protected] v1.0.7
Example: --tool=demo --path=tmp
Help: --help={COMMAND}, like: --help=rename
Tools:
rename: rename file conveniently
trelloLogseqImporter: read trello backup json file and convert to logseq md file
shell: run shell command
dirWebServer: start a simple web directory server
gitCommits2Log: generate changelog file from git commit log
kindle: read kindle clipboard file and convert to md file
json2POJO: convert json structure to POJO class
link2Tool: convert link file to md
converts: some simple utilities about string, like base64 encode