如何在Spring Boot中生成与工具类相对应的脚本?

时间:2015-10-08 23:24:09

标签: java spring spring-boot

我有一个Spring Boot包,它由一堆工具类组成,每个工具类都有一个main方法。有没有办法自动为每个工具类获取一个可运行的脚本?

我到目前为止最接近的是使用Spring Boot PropertiesLauncher启动器,以便我可以写:

LOADER_MAIN=com.foo.bar.ToolClass java -jar foo.jar ARGUMENT...

但如果我只能写ToolClass ARGUMENT...foo.jar ToolClass ARGUMENT...,那就更好了。

使用反射查找类然后调用其主方法的短模块很容易实现后者,但这不是类型安全或自动的。

我还注意到使用Spring Boot CLI我可以编写Groovy脚本来实现这个结果,但是我仍然需要用spring run script来调用它们。

另一种表达这个问题的方法可能是“如何让JAR自动提供像git这样的子命令?”。我看到几个命令行参数解析框架提供了这些类型的命令,但我不想手动构建它,我希望它被自动发现(并且子命令的参数解析留给子命令)。

有一个Node.JS npm模块helmsman,它在JavaScript中具有相同的功能:它将脚本目录转换为子命令。我认为Java等价物应该花费更少的精力来使用,因为它可以使用反射来查找所有主要方法,然后简单地将命令行参数分派给给定的类。

0 个答案:

没有答案