繁体   English   中英

什么引用了<id> Maven 插件执行的价值?

[英]What references the <id> value of a Maven plugin execution?

在 Maven <plugin>元素中有一个<executions>元素,其中包含多个<execution>元素。 每个<execution>元素都可以有一个包含字符串的<id>元素。 什么引用了那些<id>...</id>元素? 省略那个元素是什么意思? <id>元素的语义是什么?

例如:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <execution>
            <id>default-jar-execution</id>
            <configuration>
              <finalName>mainjar</finalName>
            </configuration>
          </execution>
          <execution>
            <id>extra-jar-execution</id>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <finalName>anotherjar</finalName>
            </configuration>
          </execution>
        </exectutions>
      </plugin>
      [...]
    </plugins>
  </build>
</project>

什么引用了那些<id>default-jar-execution</id><id>extra-jar-execution</id>值? 更改其中任何一个字符串的行为差异是什么? 删除这些元素是什么意思?

id元素有两个功能:

  1. 文档
  2. 让 Maven 知道何时要创建新的执行以及何时要修改现有的执行。

第一种情况很简单:它只允许您为执行指定一个有意义的名称。

第二种情况意味着 Maven 带有默认执行,例如,您可以在运行mvn help:effective-pom时看到。 如果要替换/扩展现有执行,则需要使用相同的id Maven 然后将合并两者。

请参阅http://maven.apache.org/guides/mini/guide-configuring-plugins.html#Using_the_executions_Tag

来自不同 POM 的相同 id 的执行被合并。

为了完整起见,我要指出,自 Maven 3.3.1(2015 年 3 月)以来,当从命令行调用 Maven 特定目标时,还有一个选项可以使用执行 ID。

https://maven.apache.org/docs/3.3.1/release-notes.html

在此处查看有关此选项的讨论

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM