Maven Enforcer - 是否可以使用包含数组属性的自定义规则?

时间:2013-10-21 13:31:15

标签: java maven maven-3 maven-plugin maven-enforcer-plugin

我遇到了一个关于我的一个强制执行者自定义规则配置的问题。

我的POM文件中的插件配置如下所示:

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>1.3.1</version>
        <executions>
          <execution>
            <id>enforce</id>
            <phase>validate</phase>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <uTF8Rule implementation="com.mavenrules.utf8validator.UTF8Rule">
                  <validationPath>${basedir}</validationPath>
                </uTF8Rule>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>

已在父POM中声明对规则的依赖性。

我想要的是能够将Paths的列表/数组指定为“uTF8Rule”的属性,而不仅仅是一个简单的变量。 (我希望POM负责我的规则适用的路径,而不是将规则配置为搜索我的基础内的各种路径

我无法找到有关规则属性类型的参考/文档。

所需的输出类似于:

<configuration>
  <rules>
    <uTF8Rule implementation="com.mavenrules.utf8validator.UTF8Rule">
       <listOfPaths>
          <path1>xxx</path1>
          <path2>yyy</path2>                
       </listOfPaths>
    </uTF8Rule>
  </rules>
</configuration>

欢迎任何想法。

提前致谢!

1 个答案:

答案 0 :(得分:1)

配置中的对象遵循JavaBean / pojo约定。 所以在这种情况下:

public class com.mavenrules.utf8validator.UTF8Rule {
  private List<String> listOfPaths; // or String[]
}

这应该已经足够了,但是有点无用。通过添加一个getter和setter你应该没问题。 如果我正确调用某些版本,无法启动列表或数组,但您也可以自己做。