我正在编写自己的 Maven 插件。我的 Mojo 有一个必需的参数列表:
@Parameter(property = "map.packages", required = true)
private List<String> packages;
现在,当我在一个没有配置的项目中运行这个插件时,我预计构建会失败,因为需要 packages
参数。相反,我将 packages
作为空列表获取。
这是错误还是我做错了什么?
附言。我可能应该将它添加到某个问题跟踪器,但是 Maven 的问题跟踪器在哪里?
最佳答案
问题的定位基于可以通过调试输出(在集成测试的帮助下)观察到的属性,如下所示:
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal: com.nitorcreations:drm-maven-plugin:1.1-SNAPSHOT:map (test-parameter)
[DEBUG] Style: Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<outputDirectory default-value="${project.build.directory}">${outputDir}</outputDirectory>
<packages>${map.packages}</packages>
<project default-value="${project}"/>
</configuration>
在这里您可以看到属性 (map.packages) 将被注入(inject)到包配置参数中,这意味着配置参数具有满足所需参数的值。如果您需要结合 required 定义属性,则需要 checkin execute() 方法。
关于Maven 插件所需参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19854481/