我正在编写自己的Maven插件。我的Mojo有一个必需的参数列表:
@Parameter(property = "map.packages", required = true)
private List<String> packages;
现在,当我在没有配置的项目中运行此插件时,我希望构建失败,因为需要packages
参数。相反,我将packages
作为空列表。
这是一个错误还是我做错了什么?
聚苯乙烯。我可能应该将此添加到某个问题跟踪器,但Maven的问题跟踪器在哪里?
答案 0 :(得分:1)
问题的定位基于可以通过调试输出(在集成测试的帮助下)观察到的属性,如下所示:
[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)将被注入到包配置参数中,这意味着配置参数具有满足所需参数的值。如果您需要定义与required一起定义的属性,则需要签入execute()方法。
答案 1 :(得分:-1)
根据此文档http://maven.apache.org/developers/mojo-api-specification.html#The_Descriptor_and_Annotations,您可以使用@Required注释
进行尝试