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

Maven插件config goal inside execution标记

唐和洽
2023-03-14

我注意到maven插件有目标,并且它们绑定到不同的阶段。但似乎有些目标只有在我们在侧执行标签中显式配置它们后才会执行。例如,maven-jar-plugin有两个目标jartest-jar。如果您没有在执行标签中显式配置test-jar目标,那么它将不会被执行。它只会在下面的配置中触发,其中test-jar执行标签中显式配置

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.1.0</version>
    <executions>
        <execution>
            <phase>test-compile</phase>
            <goals>
                <goal>test-jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

但对于目标jar,无论您是否使用execution标签对其进行配置,它都会被触发。在这种情况下,我想知道是否应该在执行标记中配置插件来触发插件的目标?我也没有看到官方文件对此有任何澄清。谢谢


共有1个答案

东门翰
2023-03-14

jar目标默认绑定到默认生命周期(jar),因此它会自动触发

所有受默认生命周期约束的插件(例如maven-compiler-plugin等)将在构建期间自动运行。

任何其他未绑定的目标都不会自动运行,如果需要,必须手动绑定。

maven jar插件的jar这样的所有目标都不应该被手动绑定。。。因为它们已经与生命周期相关联。

此外,您应该始终检查适当插件的留档(这里是maven-jar-plugin)并检查目标页面的文本:默认绑定到生命周期阶段:包。

这意味着您可以省略

 类似资料:
  • 我是maven的新手,学习如何以及何时在插件中执行阶段/目标 假设我的pom中有以下代码片段 现在,如果我执行mvn安装,安装之前的modello的所有阶段(以及每个阶段对应的所有目标)都将执行。正当 但是,如果进行以下修改以引入特定目标,则只会执行一个目标,即java目标(因为它位于安装阶段之前的生成源代码阶段)。对吗?

  • 主要内容:如下表所示,Maven 提供了如下 2 种类型的插件。,插件目标,插件绑定Maven 实际上是一个依赖插件执行的框架,它执行的每个任务实际上都由插件完成的。Maven 的核心发布包中并不包含任何 Maven 插件,它们以独立构件的形式存在, 只有在 Maven 需要使用某个插件时,才会去仓库中下载。 如下表所示,Maven 提供了如下 2 种类型的插件。 插件类型 描述 Build plugins 在项目构建过程中执行,在 pom.xml 中的 build 元素中配置 

  • 我想使用weblogic maven插件从wsdl创建一个webservice客户端 基于此页面:http://docs.oracle.com/middleware/1212/wls/DEPGD/maven_deployer.htm#DEPGD383我已经从服务器使用wljarBuilder生成了maven插件 /lib java-jar-wljarbuilder。jar-配置weblogic m

  • 我一直在尝试重命名tika应用程序类。由于类路径上的重复类,存在加载冲突。当我尝试运行maven install-e时,它会抛出错误,我想使用 Apache.Tika组织 分类为 com.test1.tika pom.xml文件如下所示 mvn package命令的错误如下: null

  • 我对Maven和LiquiBase是新手。在过去的几天里,我一直在玩没有Maven的liquibase。我尝试用一个新数据库和一个现有数据库生成changelog文件。现在我正在尝试使用插件实现Maven和Liquibase。 > 从命令提示符运行带有Maven的Liquibase比仅仅从命令提示符运行Liquibase有什么好处? 生成pom.xml文件并为当前项目准备好src文件夹之后。我在p

  • 问题内容: 据我了解,这不是通过使用想法插件(即通过调用)在Intellij中打开使用Maven构建的项目的最佳方法。 但是直接打开pom文件(Intellij具有Maven的默认插件);同样的东西,对于日食。 您能否提供一些关于为什么这是一种更好方法的论点? 问题答案: 这同样适用于IntelliJ和Maven: 更改文件未反映在您的IDE中,因此每次都必须重新生成项目(可能丢失某些配置(?))