4

我有一个插件,它在其配置中包含一个列表:

<build>
  <plugins>
    <plugin>
      <groupId>com.example</grouId>
      <artifactId>fictional-plugin</artifactId>
      <configuration>
        <fictionalSet>
          <setItem>First</setItem>
          <setItem>Second</setItem>
          <setItem>Third</setItem>
        </fictionalSet>
  ...
</build>

的内容<fictionalSet>将根据当前配置文件而变化。现在我在配置文件中复制插件定义,感觉有点浪费。我真正想要的是将一组项目定义为属性:

<properties>
  <fictional.set.items>
    <setItem>First</setItem>
    <setItem>Second</setItem> 
 ...
</properties>

但是,如果我尝试上述操作,则会从 Maven 收到错误消息:

[ERROR]     Non-parseable POM <path>/pom.xml: TEXT must be immediately followed 
by END_TAG and not START_TAG (position: START_TAG seen ...
<fictional.set.items>\r\n\t\t\t<setItem>... @37:13)  @ line 37, column 13

有没有办法将 Maven 属性中的列表传递到插件配置中?

4

1 回答 1

0

Maven 不支持将多个属性/标签存储在一个标签内的任何类型的列表或方式。但是,您不需要复制插件配置,您可以将其完全移动到配置文件中,而根本不在主 pom 中定义它(替代:仍然从主 pom 中删除它,但创建一个 activeByDefault 配置文件,它有默认插件配置)。由于 maven 不会打扰解析非活动配置文件,因此重复代码不应导致任何性能问题。

于 2012-05-31T22:17:33.137 回答