【问题标题】:Maven profile pluginsMaven 配置文件插件
【发布时间】:2020-01-02 18:20:02
【问题描述】:

我有一个在 pom.xml 中定义了许多配置文件的 maven 应用程序。我想在(几乎)每个配置文件中运行 webstart-maven-plugin。显而易见的解决方案是将插件定义复制粘贴到 pom.xml 中的所有配置文件部分。但是这个插件的参数很多,修改起来也不容易维护……

是否有可能定义一次插件参数并在所需的配置文件中引用/包含/覆盖这个参数化的参数?

【问题讨论】:

  • 为什么你有很多个人资料?是不是其他 Maven 机制可以让您更轻松/更好地实现目标?
  • 这是一个多项目应用程序。有一个具有通用功能的 core.jar,但如果客户要求额外的功能,它将在“额外”的 jar 中实现。所以所有配置文件都指定了“extra_userx.jar”的依赖关系。由于它是一个 java webstart 应用程序,我使用 webstart-maven-plugin 来创建 jnlp、签署 jars 等。
  • 还有一件事:由于 java webstart 应用程序的签名 jar 必须包含 jnlp 或 jnlp 模板,其中包含库列表。 webstart-maven-plugin 也有帮助。

标签: maven plugins pom.xml profile


【解决方案1】:

我可以通过定义一个父 pom 来解决它。在父 pom <packaging>pom</packaging> 中指定并将参数化的 webstart-maven-plugin 放置在其中。子 pom 必须引用父:

<parent>
    <groupId>com.bgy.application</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>./parent.xml</relativePath>
</parent>

在不需要执行插件的子 pom 的配置文件中:

<plugin>
     <groupId>org.codehaus.mojo</groupId>
     <artifactId>webstart-maven-plugin</artifactId>                
     <executions>
         <execution>
             <phase>none</phase>
         </execution>
     </executions>
 </plugin>  

在需要执行的配置文件中:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>webstart-maven-plugin</artifactId>                
</plugin> 

(可以省略)

【讨论】:

    猜你喜欢
    • 2017-04-27
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多