gpt4 book ai didi

java - 执行Maven插件目标时如何获取所有设置的参数?

转载 作者:行者123 更新时间:2023-12-02 12:32:37 24 4
gpt4 key购买 nike

/**
* @goal query
*/
public class MyQueryMojo
extends AbstractMojo
{
/**
* @parameter
*/
private String param1;

/**
* @parameter
*/
private String param2;

public void execute()
throws MojoExecutionException
{
showAllParams();
}
}

如何实现showAllParams()执行 mvn myquery:query -Dquery.param1=val1 -Dquery.param2=val2 时打印所有参数的设置/传递值?

预期标准输出:

query.param1=val1
query.param2=val2

其意图与使用 help:describe 不同因为help:describe将返回所有参数的元数据,而我需要获取实际传递的值。

编辑:showAllParams() 不应以硬编码方式实现,即使参数数量发生变化,它也应该可以工作。

而不是:

if (param1 != null) this.getLog.info(param1);
if (param2 != null) this.getLog.info(param2);
...
if (param9 != null) this.getLog.info(param9);

是否可以以这种方式做到这一点:

Map<String, String> params = getAllParams();

getLog().info(params.toString());

最佳答案

好吧,考虑到 param1 和 param2 没有初始化并且没有默认值,您可以只检查所有参数,如果参数不为 null,则打印它。对于您的情况:

if (param1 != null) this.getLog.info(param1);
if (param2 != null) this.getLog.info(param2);

但是,如果您有一个带有默认值的参数,那么根据以下链接( http://maven.40175.n5.nabble.com/Check-if-parameter-is-explicitly-set-td5905937.html ),无法判断该值是由命令行显式设置还是设置为默认值.

关于java - 执行Maven插件目标时如何获取所有设置的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45220935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com