摘要:如何解決呢編輯器解決方案編輯器編輯器介紹如下編輯器編輯器這是一個大佬用寫的支持把你的所有依賴打包獨立運行時,支持跨平臺的。
工作中我用到kotlin寫代碼,在orm上ktorm是一款非常優(yōu)秀的操作db的框架,我喜歡用它所以我寫了一個插件能夠增加我的工作效率,這款idea插件的主體邏輯是.net開發(fā)的(沒錯是跨平臺的.net)。因為db-schema的解析邏輯我很在以前寫的一個visualstudio的插件就搞過了,所以改改就行了!
這里也算是提供給大家另外一個思路去開發(fā)idea或者rider插件路吧:
就是不管你用什么語言開發(fā)邏輯,然后把你的邏輯打包成可以獨立運行,然后使用Process進行套殼調(diào)用就行了。
如何進行套殼調(diào)用請參考我寫的:ktorm的idea代碼生成器插件
代碼位置: src/main/kotlin/CodeGen.kt
來自一個issue Mac上Sqlserver運行出錯,可能是配置問題?
因為以前都沒有在mac機器上測試過,所以才沒有發(fā)現(xiàn)這個bug:
原因是:sqlserver客戶端驅(qū)動得從 System.Data.SqlClient 換成 Microsoft.Data.SqlClient
因為后者才是跨平臺的
好了,.net自從跨平臺開始就已經(jīng)支持打包獨立運行時了。我改好bug后按照往常一樣用下面的命令打包:
由于上面的命令打的包很大,所以我加了下面幾個參數(shù)
這樣打出來的單個平臺的獨立運行包就會從70M左右變成20M左右,因為我的idea插件是要支持windows和mac這2個平臺的,所以需要mac平臺20M和windows平臺20M都要同時打進一個jar包后大概是18M的大小(壓縮能力可以),支持雙平臺這個大小可以接受吧!
?
不過即使加了這個也沒有解決!有哪位大佬知道怎么搞請留言教育下我!
既然不能加trim的話那包就太大了。如何解決呢
https://github.com/dgiagio/warp
介紹如下:
Warp?lets?you?create?self-contained?single?binary?applications?making?it?simpler?and?more?ergonomic?to?deliver?your?application?to?your?customers.?A?self-contained?binary?is?specially?convenient?when?the?technology?you?use,?such?as?Node.js,?.NET?Core,?Java?and?others,?contain?many?dependencies?that?must?be?shipped?alongside?your?application.Warp?is?written?in?Rust?and?is?supported?on?Linux,?Windows?and?macOS.
這是一個大佬用Rust寫的支持把你的所有依賴打包獨立運行時,支持windows,mac,linux跨平臺的。
使用方式:
首先準(zhǔn)備好你要打包的目錄,這里我新建一個warp文件夾,然后把沒有trimmer的包含運行時的獨立包給放進去
然后去大佬的github上下載windows平臺的warp-packer.exe
然后運行:
warp-packer.exe --arch windows-x64 --input_dir warp --exec AntOrmGen.exe --output AntOrmGen.exe
打出來的包同樣是包含獨立運行時的,體積減少到了20M
同樣的方式到mac上進行同樣的操作
研究了一下這個打包運行的原理,其實它時將你的依賴全部壓縮放進了它打出來的成果物里了
然后你運行它的時候會解壓出來,在windows平臺的解壓路徑為:C:/Users{User}/AppData/Local/warp/packages/
由于它自帶了壓縮功能,所以體積才減少到了20M左右!
以上研究遇到的一個坑點: 我剛開始發(fā)現(xiàn)的是有個大佬把上面的工具封裝成了一個 dotnet-tool
按照下面的命令進行安裝
$?dotnet?tool?install?--global?dotnet-warp
可以指定r參數(shù)來區(qū)分平臺
dotnet-warp?-r?win-x64
dotnet-warp?-r?osx-x64
這里要注意一點,打包mac的得去mac系統(tǒng),不要在windows系統(tǒng)操作生成mac端,雖然可以打包成功,但是拿到mac系統(tǒng)運行會報錯。
自從.net跨平臺之后,在很多方面都可以派上用場,可以用來blazor開發(fā)chrome插件(基于webassbemly)link,還可以開發(fā)idea插件。是不是很好玩!
?
Enjoy!??!
關(guān)注公眾號一起學(xué)習(xí)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/125677.html
摘要:出現(xiàn)錯誤引發(fā)崩潰日志的流程分析這個錯誤是應(yīng)用的方法總數(shù)限制造成的。 目錄介紹 1.1 java.lang.ClassNotFoundException類找不到異常 1.2 java.util.concurrent.TimeoutException連接超時崩潰 1.3 java.lang.NumberFormatException格式轉(zhuǎn)化錯誤 1.4 java.lang.Illegal...
摘要:業(yè)務(wù)開發(fā)中的調(diào)試方法總結(jié)這段時間,接觸了單元測試,同時業(yè)務(wù)中遇到了一些需要排錯調(diào)試的情況,就把自己的經(jīng)驗做個小結(jié)。但是如果你的業(yè)務(wù)經(jīng)常變化,但是變化的部分并不會影響單元測試,那這種情況下的單元測試性價比就很高。 業(yè)務(wù)開發(fā)中的調(diào)試方法總結(jié) 這段時間,接觸了單元測試,同時業(yè)務(wù)中遇到了一些需要排錯調(diào)試的情況,就把自己的經(jīng)驗做個小結(jié)。 3種調(diào)試方法 狼叔說,常見的三種調(diào)試的境界 初級: 打l...
閱讀 3859·2023-01-11 11:02
閱讀 4350·2023-01-11 11:02
閱讀 3183·2023-01-11 11:02
閱讀 5283·2023-01-11 11:02
閱讀 4838·2023-01-11 11:02
閱讀 5648·2023-01-11 11:02
閱讀 5436·2023-01-11 11:02
閱讀 4162·2023-01-11 11:02