运行参数:
代码
package com.donews.data.hbaseuser
import java.time.LocalDate
import com.donews.data.util.Dates
import org.apache.commons.cli.{GnuParser, HelpFormatter, Options}
object JdkLogTest{
def main(args: Array[String]): Unit = {
//默认启动时间为昨天和今天
val defaultInterval = IndexedSeq(LocalDate.now().minusDays(1), LocalDate.now())
.map(_.toString)
.mkString("/")
//Option[T]是容器
val options = new Options()
.addOption("h", "help", false, "帮助")
.addOption("i", "interval", true, s"时间区间 ($defaultInterval)")
.addOption("s", "source", true, "源数据名称")
val parser = new GnuParser()
val cmdLine = parser.parse(options, args)
val interval = cmdLine.getOptionValue("i", defaultInterval).split("/")
val (startDay, endDay) = (LocalDate.parse(interval(0)), LocalDate.parse(interval(1)))
println("有 -i 参数时候,且有输入值。如果没有输入值则为默认值")
for (day <- Dates.dateRange(startDay, endDay)) {
println(day)
}
if (cmdLine.hasOption("s")) {
println("有 -s 参数时候")
println(cmdLine.getOptionValue("source"))
}
if (cmdLine.hasOption("h")) {
val formatter = new HelpFormatter()
println("有 -h 参数时候")
formatter.printHelp("StreamingHbase", options)
System.exit(0)
}
}
}
运行结果
有 -i 参数时候,且有输入值。如果没有输入值则为默认值
2016-07-01
2016-07-02
2016-07-03
2016-07-04
有 -s 参数时候
'myfilesource'
有 -h 参数时候
usage: StreamingHbase
-h,--help 帮助
-i,--interval <arg> 时间区间 (2016-10-09/2016-10-10)
-s,--source <arg> 源数据名称
Process finished with exit code 0