当前位置: 首页 > 知识库问答 >
问题:

我可以将Maven属性中的列表传递到插件配置中吗

左仰岳
2023-03-14

我有一个插件,它的配置中有一个列表:

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

的内容将根据当前配置文件进行更改。现在,我正在一个配置文件中复制插件定义,这感觉有点浪费。我真正想要的是将一组项定义为一个属性:

<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属性传递到插件配置中?

共有1个答案

杜河
2023-03-14

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

 类似资料:
  • 我使用freemarker处理的数据模型是 我有一个字符串数组列表,我想像这样传递到这个映射中: 我在输出中得到以下消息: 看来我做不到。这是正确的吗?如果是这样的话,FreeMarker支持的数据结构有什么建议吗? 我是Java新手,正在阅读FreeMarker。请原谅任何基本的事情我不明白,但我真的很想让这个自由营销的东西工作。 模板现在看起来如下所示:

  • 问题内容: 我试图找到可以传递给标签属性的所有可能值的列表。 我知道我也可以从.js文件中传递函数名,但是我只需要JSF附带的函数名即可。 我只知道单击鼠标悬停和键入,但是我敢肯定还有更多。只是不知道在哪里可以找到它们。 问题答案: 的属性 至少可以保存HTML J组件所生成的HTML元素的所有受支持的DOM事件。一种简单的查找方法是检查JSF标记库文档中感兴趣的JSF输入组件的所有属性,然后删除

  • 我有一个名为expertion的maven插件,可以生成很好的API文档。我宁愿使用Gradle作为我的构建工具,但它看起来在这方面有所限制,或者可能我只是不知道如何使用它。 我想知道是否有可能在gradle中使用maven插件(发音)?我必须写一个蚂蚁脚本并调用它吗?到目前为止,我找不到发音的渐变示例,所以我猜它不受支持?

  • 问题内容: 我在这里阅读了一些有关如何从Maven插件设置属性的问题(大多数问题涉及应用程序的版本号)。似乎没有简单的方法可以做到这一点,我发现最好的解决方案是拥有一个filter.properties文件,该文件从插件进行更新,并由主pom文件用来过滤所需的资源。 从Maven文档(Maven过滤器插件)中阅读以下内容后,我尝试了另一种解决方案: 变量可以包含在您的资源中。这些变量用$ {…}分

  • 我试图将docker-compose.yml文件中的值动态地传递给Wildfly配置。我想有灵活的邮件配置-只是为了快速改变地址,或用户名,或端口… 在本例中,我试图通过将docker-compose.yml中的环境变量转发给docker-compose.yml中的dockerfile作为参数“-dargumentname=$environmentvariable。当前wildfly在start上

  • 在使用PingFederate进行单点登录期间,我需要将数据从一个系统传递到另一个系统。 目前我的链接如下所示: 目标资源,解码,如下所示: pingfederate处理请求后,它最终会向其他公司发送一封邮件,将整个TargetResource复制到RelayState、params和all中: 我的目标是以某种方式将 paramOne 和 paramTwo 传递到 SAML 属性中,但不要将这些