Maven:从命令行执行和配置中多次执行

2024-03-05

我想从命令行执行插件目标,但执行插件的多次执行。为此,我的 POM 如下所示:

<plugin>
    <groupId>xxx.yyy</groupId>
    <artifactId>zzz</artifactId>
    <version>1.1.6</version>
    <executions>
        <execution>
            <id>default-cli-1</id>
            <goals>
                <goal>mygoal</goal>
            </goals>
            <configuration>
                .... config1 ....
            </configuration>
        </execution>
        <execution>
            <id>default-cli-2</id>
            <goals>
                <goal>mygoal</goal>
            </goals>
            <configuration>
                .... config2 ....
            </configuration>
        </execution>
    </executions>
</plugin>

我想做的是这样的:

mvn xxx.yyy.zzz:mygoal

然后将执行两次处决。但我不知道怎么做。

我知道我不能使用<id>从命令行执行时。这就是default-cli是为了.但是,那<id>内必须是唯一的<executions>这意味着我只能把default-cli on one execution.

Maven版本3.0.5.


您可以从 Maven 开始从命令行执行目标(及其执行)3.3.1 on and this https://issues.apache.org/jira/browse/MNG-5768新功能,通过@executionId附加选项。

关于 Maven 和执行 ID 生成,您还可以检查这个问题 https://stackoverflow.com/questions/34590452/what-is-the-implicit-id-of-a-maven-plugin-execution.


在Maven之前3.3.1您可以将这两个执行绑定到一个通常不会造成损害的阶段(例如validate)并有类似以下内容:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.5</version>
    <executions>
        <execution>
            <id>execution-1</id>
            <phase>validate</phase>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration>
                <classifier>something1</classifier>
            </configuration>
        </execution>
        <execution>
            <id>execution-2</id>
            <phase>validate</phase>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration>
                <classifier>something2</classifier>
            </configuration>
        </execution>
    </executions>
</plugin>

然后执行:

mvn validate

作为无害阶段的一部分,您将有效地执行同一插件的同一目标的两次执行。

如果您不想默认将它们作为此阶段的一部分(可以理解),那么您可以将它们移至配置文件并在执行过程中将其激活:

mvn validate -PpluginGoalExecution

为了完整起见,配置文件如下所示:

<profile>
    <id>pluginExecution</id>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.5</version>
                <executions>
                    <execution>
                        <id>execution1</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <configuration>
                            <classifier>something1</classifier>
                        </configuration>
                    </execution>
                    <execution>
                        <id>execution2</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <configuration>
                            <classifier>something2</classifier>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</profile>

不言而喻:在这种情况下,配置文件的 id 应该非常清楚地说明它将实际执行哪个插件和哪个目标(即配置文件的目的,像往常一样)。

Update
只是装饰性的,但您也可以添加到元素上方的配置文件构建中:

<defaultGoal>validate</defaultGoal>

这样您只需要运行以下 Maven 命令(仅配置文件激活):

mvn -PpluginGoalExecution

然后它会自动执行验证阶段和配置的插件执行。不是一个大的变化(正如我所说,装饰性的),但可能更接近于插件目标执行而不是 Maven 阶段调用(再次强调,只是外观)。

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

Maven:从命令行执行和配置中多次执行 的相关文章

随机推荐

  • 当通过开发工具查看时,Selenium WebDriver 无法找到页面源中不存在但 HTML 中存在的元素

    我正在使用 Selenium Web Driver HtmlUnitDriver 来搜索网页上的元素 我只能搜索页面源中可见的那些元素 不过 我可以使用 Internet Explorer 开发人员工具 F12 查看这些元素的详细信息 当我
  • 无法为字符串生成正则表达式

    我有一根绳子abc 123 243 xyz 432 567 我想生成一个与特定字符串匹配的正则表达式 应根据以下示例和具体结果来测试正则表达式 Exp 1 abc 123 234 xyz 432 567 123存在于 123 243 结果
  • 使用 jQuery 隐藏本机工具提示

    当用户将鼠标悬停在具有标题属性的锚标记上时 是否有办法隐藏本机工具提示操作 我不想删除它 只是不显示默认工具提示操作的令人讨厌的黄色框 UPDATE 在阅读了其他几篇文章后 我认为我无法隐藏本机工具提示操作的标题属性 但我试图跳出框框思考
  • UITextField 不会成为FirstResponder

    我在让文本字段接受成为FirstResponder 指令时遇到问题 我提供了一种自定义机制来在导航栏中创建标题 我有另一个视图控制器成功地使用了相同的技术 在 viewDidAppear 上我触发 void addTitleTextFiel
  • 如何使用 Python Popen 执行多个参数?

    我正在尝试制作一个带有按钮的 PyGtk Gui 当用户按下这个按钮时 gnome terminal提示用户写入密码 然后它会克隆这个Git 存储库 https github com pererinha gedit snippet jque
  • 从 pandas 数据框中提取字典值

    我需要从 json 文件导入的数据集中添加额外的功能 它看起来是这样的 f1 pd read json https raw githubusercontent com ansymo msr2013 bug dataset master da
  • 在 Material Angular 中显示一个简单的警报对话框

    我正在使用材质角度 来自角材料 https material angular io 该网站中的示例似乎有点过于复杂 互联网上的所有其他教程似乎要么已经过时 要么正在使用 AngularJS 如何显示一个带有标题 消息和确认 取消按钮的简单警
  • 如何使webpack 5.x src路径是项目真正的src路径而不是webpack配置文件根路径

    我在配置中配置 webpack src 路径 如下所示 path resolve dirname src 看来webpack没有找到真正的项目src路径 源路径是 web pack 配置路径 现在我得到这样的路径 Users xiaoqia
  • Go代码可以在windows中生成dll或者C++/C#可以调用golang代码吗?

    Go函数可以被调用吗C or C windows 上的代码 Go支持在Windows中生成dll吗 不 Go 代码是静态链接的 其原因在于 Go 的运行时 它嵌入在每个可执行文件中 Edit 显然 通过大量间接的方式是可能的 但在实践中远未
  • 在 Python 中,如何在列表中包含单个反斜杠元素?

    首先 我在 Windows 10 上运行 Python 3 6 python 中的反斜杠字符是一个特殊字符 充当字符串的 转义符 因此 无法直接打印 如果我想打印一个反斜杠 这样做是行不通的 print error message 解决这个
  • 电报机器人 - 保留问题和答案

    我的电报机器人是一个对话框 它需要保留问题和答案 如 TriviaBot 执行此操作的最佳 最有效 方法是什么 以用户 ID 作为键的数据库 有很多电报机器人 但是哪里有带有源代码的示例来获取想法 您的问题与 telegram bot AP
  • 将 vim 的强大功能融入 WM:模态窗口管理? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我是 Vim 的忠实粉丝 并且在很大程度上坚持极其高效的模式编辑风格 在使用 Vim 一些经验之后 我决定使用其他分享其高效 快速键盘使用理念的软件
  • Chartjs 气泡图中的各个气泡可以有标签吗?

    我正在使用 Chartjs 创建气泡图 我能够创建描述每个气泡的工具提示 但我的图表的用户可能无法将鼠标悬停在其上以查看工具提示 BubbleData 对象格式不包含标签元素 无论如何我都放了一个 不走运 我尝试过图表数据对象的 标签 元素
  • 从 AJAX 调用异步 Servlet

    我想要完成的事情并不太复杂 但由于我不太熟悉 AJAX 所以遇到了一些麻烦 实现后 我将拥有一个 JSP 其中有一个调用异步 Servlet 的按钮 servlet 将运行一个长时间运行的任务 并在部分任务完成时通过向表中添加行来向用户提供
  • 如何从父函数运行子函数?

    我想通过按父视图中的按钮来调用 childFunction demo ChildView import SwiftUI struct ChildView View func childFunction print I am the chil
  • Bootstrap:左对齐按钮文本

    如何在引导按钮中将文本左对齐 我有多个带有不同长度文本的按钮 并且所有按钮都需要具有相同的宽度 我已经使用类实现了这一点col xs 11 示例按钮代码如下
  • 将双精度常数定义为十六进制?

    我希望将 1 0 以下最接近的数字作为浮点数 通过阅读维基百科的文章IEEE 754 http en wikipedia org wiki IEEE 754 1985 Double precision 64 bit我设法发现 1 0 的二进
  • 持久化对象列表

    我懂了 javax jdo JDOFatalUserException don Comment id 的元数据错误 不能有 java lang String 主键并且是子对象 拥有字段是 don Post comments 嵌套的Throw
  • 如何在java中构建SPARQL查询?

    是否有一个库 能够像以下那样以编程方式构建 SPARQL 查询CriteriaBuilder在 JPA 中或像使用PreparedStatement对于 SQL 类似 对于 SQL 在 Java 中构建 SQL 字符串的最简洁方法 http
  • Maven:从命令行执行和配置中多次执行

    我想从命令行执行插件目标 但执行插件的多次执行 为此 我的 POM 如下所示