Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在maven mojo中捆绑现有java可执行文件_Java_Command Line_Maven 3_Mojo - Fatal编程技术网

如何在maven mojo中捆绑现有java可执行文件

如何在maven mojo中捆绑现有java可执行文件,java,command-line,maven-3,mojo,Java,Command Line,Maven 3,Mojo,我有一个现有的java命令行程序,它接受大量参数,并使用优秀的语法分析它们 现在我想制作一个maven插件mojo,它将运行这个应用程序中包含的Java代码 到目前为止,我已经尝试了基本的方法:将每个命令行参数复制到mojo参数中。但是我发现这非常无聊而且容易出错,因为maven mojo javadoc注释远不如args4j注释完整和集成 那么,使用maven 3,有没有更好的方法让我的可执行文件作为maven mojo运行? 哦,请不要谈论我,因为我发现在这种情况下它太有限了(我的可执行文件

我有一个现有的java命令行程序,它接受大量参数,并使用优秀的语法分析它们

现在我想制作一个maven插件mojo,它将运行这个应用程序中包含的Java代码

到目前为止,我已经尝试了基本的方法:将每个命令行参数复制到mojo参数中。但是我发现这非常无聊而且容易出错,因为maven mojo javadoc注释远不如args4j注释完整和集成

那么,使用maven 3,有没有更好的方法让我的可执行文件作为maven mojo运行?
哦,请不要谈论我,因为我发现在这种情况下它太有限了(我的可执行文件必须使用项目设置和用户配置文件的组合来运行,我想简单地调用maven exec plugin是不行的)。

唯一的方法是通过mojo参数,因为这是maven的方法,特别是对于maven插件

我没有定义一个属性文件,其中包含作为mojo参数替代的配置。但是我认为对于Maven插件来说,最好的做法是使用Mojo参数。

虽然从总体上看这是完全正确的,但我想对其进行一些扩展

我的独立命令行应用程序使用args4j,但我认为使用or(甚至更多)可以很好地复制该过程,or依赖于主bean中相同的命令行注释

所以,我所做的是一个maven mojo,它使用内省,获取主bean命令行参数的列表。 对于这些参数中的每一个,我希望项目/设置信息中都有一个属性。如果存在此属性,我将使用选项和关联的finally构建一个假命令行

浏览完所有选项(存储为maven属性)后,我可以使用args4j填充bean,然后使用其主命令运行这个bean


我认为,如果应用程序有一组标志和一个无参数的
run()
方法,这种方法可以很好地推广。

关于我们讨论的参数有多少?@khmarbaise在10到20之间,我认为这些参数中有很多都有默认值?我知道很多插件都有更多的参数。我很抱歉不接受你的答案,但我找到了一个更好的解决方案,并将在以后的答案中解释。请原谅我的行为。