import com.beust.jcommander.JCommander
import com.beust.jcommander.Parameter;
.........
// Following code is copied from Kobalt for learning
class Args {
@Parameter
var targets: List<String> = arrayListOf()
@Parameter(names = arrayOf("--download"), description = "Force a download from the downloadUrl in the wrapper")
var download: Boolean = false
@Parameter(names = arrayOf("--pluginJarFiles"), description = "Comma-separated list of plug-in jar files")
var pluginJarFiles: String? = null
@Parameter(names = arrayOf("--port"), description = "Port, if --server was specified")
var port: Int? = null
}
fun main(args: Array<String>){
val cmdArgsObj = Args()
val result = JCommander().apply {
setProgramName("Test")
addObject(cmdArgsObj)
setVerbose(1)
}
result.parse("--download","--port=9090","--pluginJarFiles=a.txt")
println (cmdArgsObj.port)
println (cmdArgsObj.pluginJarFiles)
println(cmdArgsObj.download)
println(cmdArgsObj.targets)
}
Results
===========
[JCommander] Parsing "--download --port=9090 --pluginJarFiles=a.txt"
[JCommander] Found main parameter:com.beust.jcommander.Parameterized@b4304576
[JCommander] Adding description for --download
[JCommander] Adding description for --pluginJarFiles
[JCommander] Adding description for --port
[JCommander] Parsing arg: --download
[JCommander] Parsing arg: --port=9090
[JCommander] Parsing arg: --pluginJarFiles=a.txt
null
null
true
[--port=9090, --pluginJarFiles=a.txt]
Question: Why port, pluginJarFiles parameters are not set? Why only download is set? What am I missing?
Thanks,
Bakkiaraj M