受@idiotc4t所託, 我拿到了一個Java項目, 目的是要把這玩意編譯出來, 最初我還以為和以前的Java項目類似,
只要mvn build 就能一了百了, 沒想到這次拿到的是一個使用gradle構建的項目.
gradle的出現比maven晚, 它們都是用來構建運行在JVM上的應用使用的, gradle可以使用編程語言來自定義你的構建流程, 類似C的makefile(這個比喻不太好其實), 或者是JavaScript的gulp. gradle解決了maven的一些特點, 比如xml的配置繁瑣, 看著就頭大, 以及構建步驟的靈活控制. 總之很牛逼就是了, 也比較難上手.
由於我以前使用過一段時間的gradle, 所以我知道用gradle打jar包的困難. (gradle這個工具通常都是給Android開發者用的, 默認沒有提供打成Jar包的選項, 所以打出來什麼包, 得看緣分.)
當我運行gradle build後, 光速構建完成, 我定神一看, 沒有工程文件目錄, 倒是有一個jar包 ,這個jar包就14KB, 好傢伙, 肯定沒構建成功. (正常的java程序絕對不會這麼小, 一般肯定是1MB以上) 輸入java -jar一看, 果然:
1...jar: 沒有主清單屬性
總之我在網上查了半天都沒發現解決方法. 最後把目光轉向代碼, 最後發現在代碼中都沒有聲明包路徑…
(嘶….這廝在README裡是怎麼打包的???我懷疑有這B留了一手)
最後用宇宙第一IDE(IDEA)重構了整個包的代碼, 補上了包路徑. 再次嘗試gradle build,終於看到了工程文件.
總之, 還好老子技高一籌.
寫完了, 摸了.