tor*_*atn 18 command-line maven-2 arguments maven-plugin
我正在编写一个maven插件,其参数是String [].
像这样:
/**
* @parameter expression="${args}"
*/
protected String[] args;
Run Code Online (Sandbox Code Playgroud)
这可以通过POM使用,如下所示:
<args>
<arg>arg1</arg>
<arg>arg2</arg>
<args>
Run Code Online (Sandbox Code Playgroud)
但我想从命令行发送它
-Dargs={arg1, arg2}
Run Code Online (Sandbox Code Playgroud)
这可能吗?
Ric*_*ler 10
据我所知,你不能直接做到这一点,但接受一个分隔的String并将其自己拆分成一个数组是很常见的做法.
例如,maven-site-plugin允许您指定以逗号分隔的语言环境字符串,而maven-scala-plugin允许您使用管道分隔符定义参数来处理此问题.您可以查看相关的Mojos以查看参数的处理方式.
以下是一些示例用法:
网站插件:
-Dlocales=enGB,frFR
Run Code Online (Sandbox Code Playgroud)
斯卡拉-插件:
-DaddArgs=arg1|arg2|arg3
Run Code Online (Sandbox Code Playgroud)
更新:如果您想更优雅地处理这个问题,可以使用maven-shared-io来定义外部描述符文件,然后将描述符位置作为属性传递.这意味着单个命令行参数可以引用配置结构.
如果这听起来可能对您有用,请查看此答案,该答案描述如何在属性插件中使用外部描述符,或者这个答案与xml-maven-plugin类似.或者你可以看看assembly-plugin的想法.