Maven 配置文件 - 如何为父级运行插件一次,为模块运行多次?

2024-05-09

我对詹金斯的输出有点困惑。

Jenkins 上的工作:(底部缩短了 pom.xml)

mvn deploy -Pprofile1

我的所有插件都会运行 4 次:

  • 父/pom.xml
  • 父/module1/pom.xml
  • 父/module2/pom.xml
  • 父/module3/pom.xml

I need:

  • 第一个 Maven 插件: 只运行once在父 pom.xml 中
  • 第二个 Maven 插件: 跑去every pom.xml

Why:

  • first-maven-plugin:将在阶段运行:初始化 --> 相当长的清理操作。不想再这样4次了
  • secondary-maven-plugin:将在所有 pom 的 stage:package --> necesaary 中运行。

父pom.xml

<project ...>

    <groupId>com.test.parent</groupId>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>parent</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>parent</name>

    <modules>
        <module>module1</module>
        <module>module2</module>
        <module>module3</module>
    </modules>

    <profiles>
        <profile>
            <id>profile1</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.test.plugin</groupId>
                        <artifactId>first-maven-plugin</artifactId>
                        <version>1.0.0-SNAPSHOT</version>
                        <execution>
                            <id>execution1</id>
                            <phase>initialize</phase>
                            <goals>
                                <goal>doit</goal>
                            </goals>
                        </execution>
                    </plugin>
                    <plugin>
                        <groupId>com.test.plugin2</groupId>
                        <artifactId>second-maven-plugin</artifactId>
                        <version>1.0.0-SNAPSHOT</version>
                        <execution>
                            <id>another</id>
                            <phase>package</phase>
                            <goals>
                                <goal>goforit</goal>
                            </goals>
                        </execution>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>

您可以使用<inherited>false</inherited>在第一个插件配置中。所以它只会在父pom执行中运行。

<build>
    <plugins>
        <plugin>
            <groupId>com.test.plugin</groupId>
            <artifactId>first-maven-plugin</artifactId>
            <version>1.0.0-SNAPSHOT</version>
            <inherited>false</inherited>
            <execution>
                <id>execution1</id>
                <phase>initialize</phase>
                <goals>
                    <goal>doit</goal>
                </goals>
            </execution>
        </plugin>
        <plugin>
            <groupId>com.test.plugin2</groupId>
            <artifactId>second-maven-plugin</artifactId>
            <version>1.0.0-SNAPSHOT</version>
            <execution>
                <id>another</id>
                <phase>package</phase>
                <goals>
                    <goal>goforit</goal>
                </goals>
            </execution>
        </plugin>
    </plugins>
</build>

See https://stackoverflow.com/a/1671175 https://stackoverflow.com/a/1671175

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Maven 配置文件 - 如何为父级运行插件一次,为模块运行多次? 的相关文章

随机推荐

  • 将 GSL(或其他库)静态链接到共享库

    注意 尽管下面提到了 Python 但我的问题很可能根本与 Python 无关 如果我没有记错的话 我提到的 模块 相当于一个 C 库 至少对于我的问题而言是这样 在 Debian 上 我尝试使用 C 创建一个 Python 模块 而该模块
  • 如何使用 PHP 创建动态页面标题

    大家好 我想知道是否有人可以帮助解决这个 PHP 问题 是否可以使用 H2 标记中的文本并使用它来动态填充页面标题 我还希望能够使用相同的技术将 H2 文本添加到元描述中 有人可以帮忙吗 如果您的 h2 文本是动态创建的 那么网页的其他部分
  • 如何根据 Kubernetes / Docker 事件发送警报?

    是否可以根据 Kubernetes 集群内发生的事件以某种方式发送警报 到电子邮件 slack 特别是 如果 Pod 意外重新启动或 Pod 无法启动 那么获取警报将非常有用 同样 了解 Pod 的 CPU 使用率是否超过特定阈值并获取警报
  • 在 r 中的 unique() 函数中使用管道不起作用

    我在使用管道运算符 gt 和 unique 函数时遇到一些麻烦 df data frame a c 1 2 3 1 b a unique df a no problem here df gt unique a not working her
  • Javascript:自动点击按钮?

    我正在学习如何编写 chrome 扩展 而且我对 javascript 还很陌生 这是一些 html div class button data a class button1 whiteColor href http link1 com
  • 在 Visual Studio 2017 中变量模板中的除法返回零

    这大概是一个视觉工作室2017 questions tagged visual studio 2017与此问题相关的错误 Visual Studio 中 Lambda 的模板变量错误 https stackoverflow com q 49
  • p:remoteCommand 无法在异步模式下工作

    如果有人可以在这里给我帮助 我将不胜感激 我在页面上有一个选项卡式布局 通过单击选项卡 p commandLink 我想初始化该选项卡的适当数据并更新显示内容的区域 由于我希望初始化能够延迟发生 当呈现选项卡内容时 因此我使用 Primef
  • Open XML SDK:尝试填充超过 25 列时出现“不可读内容”错误

    我使用 C 中的 Open XML SDK 创建了一个电子表格 并成功填充了两个工作表 当尝试填充第三个时 我得到了 内容不可读 打开已完成的文档时出错 并且当我尝试在第三个文档中连续填充超过 25 个单元格时 似乎会发生此错误 我使用的代
  • Jqueryui:如何在对话框周围制作阴影?

    我正在尝试在 jqueryui 对话框周围放置阴影 就像是 div class ui widget shadow ui corner all Some stuff in the box with a shadow around it div
  • 在Java中将浮点数组写入文件

    我正在读取 NetCDF 文件 我想将每个数组作为浮点数组读取 然后将浮点数组写入新文件 如果我读取浮点数组 然后迭代数组中的每个元素 使用 DataOutputStream 我可以使其工作 但这非常非常慢 我的 NetCDF 文件超过 1
  • 从 pandas udf 记录

    我正在尝试从 python 转换中调用的 pandas udf 进行日志记录 因为在执行器上调用的代码不会显示在驱动程序的日志中 我一直在寻找一些选项 但到目前为止最接近的选项是这个one https stackoverflow com q
  • 如何从 Perl 中的字符串中去除无效的 XML 字符?

    我正在寻找一种标准的 经过批准的 可靠的方法 可以在将字符串写入 XML 文件之前从字符串中删除无效字符 我在这里讨论的是包含退格键 H 和换页符等的文本块 There has成为执行此操作的标准库 模块函数 但我找不到它 我在用着XML
  • PHP7 返回类型为 JSON

    PHP 7 有一个新功能 即返回类型声明 我们可以返回一个 字符串 类型 例如 function myFunction a string 我们还可以返回一个 数组 类型 例如 function myFunction a array 但是我们
  • 带有 React 的 Google Analytics 无法正常工作

    我在我的反应项目中使用谷歌分析 即使我在线 它也不会显示任何活跃用户 我尝试过在网上找到的不同方法 但似乎都不起作用 我只在本地主机上尝试过 而不是在已部署的网站上尝试过 但我认为它应该仍然有效 这是我的代码 我的应用程序 js impor
  • php版本升级到8后,出现此错误

    我正在将 php 7 升级到 php 8 0 在以前的 php 版本 7 中 这段代码工作正常 child parent parent resultData gt parent id gt child Yes 上面的代码在 php 7 中工
  • PostgreSQL 中的逆透视表

    我有下表作为 SUM Case End 的结果 Account Product A Product B Product C 101 1000 2000 3000 102 2000 1000 0 103 2000 1000 0 104 200
  • .Net 将 NULL 值从变量值插入 SQL Server 数据库

    也有类似的问题 但答案不是我想要的 如果引用为 NULL 或尚未分配值 我想将 NULL 值插入 SQL Server 数据库 目前我正在测试 null 它看起来像 String testString null if testString
  • 如何使用 System.out.println 以十六进制打印字节?

    我已经声明了一个字节数组 我使用的是 Java byte test new byte 3 test 0 0x0A test 1 0xFF test 2 0x01 如何打印数组中存储的不同值 如果我使用 System out println
  • struts2 date无法通过jquery datetimepicker获取时间

    我是struts2的新手 创建了一个小型Web应用程序 我想要一个帖子是计时器 我选择jquery datetimpicker 在用户选择时间和日期后 它将显示用户选择的时间和日期 我用这个jquery http www javascrip
  • Maven 配置文件 - 如何为父级运行插件一次,为模块运行多次?

    我对詹金斯的输出有点困惑 Jenkins 上的工作 底部缩短了 pom xml mvn deploy Pprofile1 我的所有插件都会运行 4 次 父 pom xml 父 module1 pom xml 父 module2 pom xm