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

Java 什么引用了<;id>;Maven插件执行的价值?,java,maven,Java,Maven,在Maven元素中,有一个元素包含多个元素。每个元素都可以有一个包含字符串的元素。什么引用了那些…元素?省略该元素意味着什么?元素的语义是什么 例如: <project> [...] <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>mav

在Maven
元素中,有一个
元素包含多个
元素。每个
元素都可以有一个包含字符串的
元素。什么引用了那些
元素?省略该元素意味着什么?
元素的语义是什么

例如:

<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>

[...]
org.apache.maven.plugins
maven jar插件
默认jar执行
主缸
额外jar执行
罐子
另一个罐子
[...]

什么引用了那些
默认jar执行
额外jar执行
值?更改这两个字符串的行为差异是什么?删除这些元素意味着什么?

id元素有两个功能:

  • 文件
  • 允许Maven知道何时创建新执行以及何时修改现有执行
  • 第一种情况很简单:它只允许您为执行指定一个有意义的名称

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

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


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


    请参阅有关此选项的讨论

    谢谢。合并多个执行意味着什么?如果您使用相同的ID,那么Maven将加载现有的执行并向其中添加XML。使用
    help:effective pom
    查看结果。如果执行太多或参数错误,则需要更改ID并添加更多配置。我不知道,但这很简单:加载第一个XML,然后添加第二个XML。第二个元素中的相同叶元素将覆盖第一个元素中的叶(叶元素是那些包含文本的元素,即配置选项值)。