今天在做讀代碼的時候,看見了項目中的com.github.acrisci.commander.Program這個包的使用,由於沒有見過,所以學習了一遍,在這裏記錄一下,我的博客只是記錄,如果沒有解決你的問題,請移步github。
這個包是對命令行輸入信息的解析,使得解析後的數據運用到項目中。
首先是導入,我用的是maven,所以直接在maven repository中找到相關包導入,然後是代碼中的使用,
這是官方提供的示例:
import com.github.acrisci.commander.Program
var program = new Program()
.version("0.0.1")
.option("-p, --peppers", "Add peppers")
.option("-P, --pineapple", "Add pineapple")
.option("-b, --bbq-sauce", "Add bbq sauce")
.option("-c, --cheese [type]", "Add the specified type of cheese [marble]", default="marble")
.parse(args)
if (args.isEmpty)
program.help
println("you ordered a pizza with:")
if (program.peppers)
println(" - peppers")
if (program.pineapple)
println(" - pineapple")
if (program.bbqSauce)
println(" - bbq")
println(" - " + program.cheese + " cheese")
創建是使用new Program(),
重要的是後面的配置,使用version是對版本的配置,這個自行選擇,option是對命令行信息參數的確定,首先是對參數的命名,例如-p, --peppers,後面使用這個參數也是用這個名字,然後是提示信息,在我的項目中,還用到required,這個參數的值是一個boolean,我在官網上沒有找到解釋,也還沒有看源代碼,只是暫時猜測這個是指如果值爲true是指該項必須填寫,暫時這樣理解,後面看完源代碼在進行修改。還用到了fn這個參數,這個的意思是強轉類型,就是將數據轉爲你需要的類型,值是一個佔位符的寫法,例如_.toInt就是轉化爲Int。
最後是對使用parse方法將分解執行,後面就可以調用了
調用也很簡單,就是program.option,我的項目是將這些options封裝在一個樣例類中,這樣就可以用於其他包。